본문 바로가기

Programing/Oracle

Oracle - LOADER

ORACLE의 TOOL들


SQL*LOADER : CONTROL FILE과 DATAFILE을 들어갈건 LOADER에 올리고 나쁜건 BAD FILE 나 DISCARD FILE 로 빠진다.




예제로 활용할 파일

C:\>SQLLDR

C:\>COPY C:\oracle\ora92\rdbms\demo\ulcase1.* C:\
C:\oracle\ora92\rdbms\demo\ulcase1.ctl
C:\oracle\ora92\rdbms\demo\ulcase1.sql
        2개 파일이 복사되었습니다.

C:\>notepad ulcase1.ctl

-- Copyright (c) 1991 by Oracle Corporation
--   NAME
--     ulcase2.ctl - <one-line expansion of the name>
--   DESCRIPTION
--     <short description of component this file declares/defines>
--   RETURNS
--
--   NOTES
--     <other useful comments, qualifications, etc.>
--   MODIFIED   (MM/DD/YY)
--    ksudarsh   04/08/94 -  merge changes from branch 1.3.710.1
--    ksudarsh   02/21/94 -  quote dat file
--    ksudarsh   03/11/93 -  make filename lowercase
--    ksudarsh   11/06/92 -  infile is ulcase2
--    cheigham   08/28/91 -  Creation
--
-- $Header: ulcase2.ctl,v 1.4 1994/04/08 13:42:44 ksudarsh Exp $ case2.ctl
--
LOAD DATA
INFILE 'ulcase2.dat'
INTO TABLE EMP

( EMPNO    POSITION(01:04) INTEGER EXTERNAL,
  ENAME    POSITION(06:15) CHAR,
  JOB      POSITION(17:25) CHAR,
  MGR      POSITION(27:30) INTEGER EXTERNAL,
  SAL      POSITION(32:39) DECIMAL EXTERNAL,
  COMM     POSITION(41:48) DECIMAL EXTERNAL,
  DEPTNO   POSITION(50:51) INTEGER EXTERNAL)


새로운창띄운다.(2번)

SQL> @C:ULCASE1.SQL
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production에서 분리되었습니다.

C:\>SQLPLUS SCOTT/TIGER

SQL*Plus: Release 9.2.0.1.0 - Production on 수 Jul 2 16:34:16 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


다음에 접속됨:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

SQL> SELECT * FROM EMP;

선택된 레코드가 없습니다.

SQL>



C:\oracle\ora92\rdbms\demo\ULCASE1.CTL (EDITPLUS로 오픈)

LOAD DATA
INFILE * : *은 DATAFILE 위치 CONTROL FILE내에 포함
INTO TABLE DEPT
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(DEPTNO, DNAME, LOC) : 값들
BEGINDATA
12,RESEARCH,"SARATOGA"  
10,"ACCOUNTING",CLEVELAND
11,"ART",SALEM
13,FINANCE,"BOSTON"
21,"SALES",PHILA.
22,"SALES",ROCHESTER
42,"INT'L","SAN FRAN"


3번째 창 띄우고 실행

C:\>SQLLDR USERID=SCOTT/TIGER CONTROL=C:\ULCASE1.CTL

SQL*Loader: Release 9.2.0.1.0 - Production on 수 Jul 2 16:39:35 200

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

커밋 시점에 도달 - 논리 레코드 개수 7

C:\>


2번째 창 실행

SQL> SELECT * FROM DEPT;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        12 RESEARCH       SARATOGA
        10 ACCOUNTING     CLEVELAND
        11 ART            SALEM
        13 FINANCE        BOSTON
        21 SALES          PHILA.
        22 SALES          ROCHESTER
        42 INT'L          SAN FRAN

7 개의 행이 선택되었습니다.



-------------------------------------------------------------------------------------------



C:\>COPY C:\oracle\ora92\rdbms\demo\ulcase2.* C:\
C:\oracle\ora92\rdbms\demo\ulcase2.ctl
C:\oracle\ora92\rdbms\demo\ulcase2.dat
        2개 파일이 복사되었습니다.

C:\>


-- Copyright (c) 1991 by Oracle Corporation
--   NAME
--     ulcase2.ctl - <one-line expansion of the name>
--   DESCRIPTION
--     <short description of component this file declares/defines>
--   RETURNS
--
--   NOTES
--     <other useful comments, qualifications, etc.>
--   MODIFIED   (MM/DD/YY)
--    ksudarsh   04/08/94 -  merge changes from branch 1.3.710.1
--    ksudarsh   02/21/94 -  quote dat file
--    ksudarsh   03/11/93 -  make filename lowercase
--    ksudarsh   11/06/92 -  infile is ulcase2
--    cheigham   08/28/91 -  Creation
--
-- $Header: ulcase2.ctl,v 1.4 1994/04/08 13:42:44 ksudarsh Exp $ case2.ctl
--
LOAD DATA
INFILE 'C:\ulcase2.dat'
INTO TABLE EMP

( EMPNO    POSITION(01:04) INTEGER EXTERNAL, (출력번호에 1번째 부터 4번째 까지 넣겟다)
  ENAME    POSITION(06:15) CHAR,
  JOB      POSITION(17:25) CHAR,
  MGR      POSITION(27:30) INTEGER EXTERNAL,
  SAL      POSITION(32:39) DECIMAL EXTERNAL,
  COMM     POSITION(41:48) DECIMAL EXTERNAL,
  DEPTNO   POSITION(50:51) INTEGER EXTERNAL)


C:\>SQLLDR USERID=SCOTT/TIGER CONTROL=C:\ULCASE2.CTL

SQL*Loader: Release 9.2.0.1.0 - Production on 수 Jul 2 16:49:34 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

커밋 시점에 도달 - 논리 레코드 개수 7

C:\>






-----------------------------------------------------





우편번호 INSERT


SQL> SHOW USER
USER은 "SCOTT"입니다
SQL> CREATE TABLE POST
  2  (ZIPCODE VARCHAR2(6),
  3  NO       VARCHAR2(3),
  4  DO       VARCHAR2(20),
  5  CITY     VARCHAR2(20));

테이블이 생성되었습니다.

SQL>





 

-- Copyright (c) 1991 by Oracle Corporation
--   NAME
--     ulcase1.ctl - <one-line expansion of the name>
--   DESCRIPTION
--     <short description of component this file declares/defines>
--   RETURNS
--
--   NOTES
--     <other useful comments, qualifications, etc.>
--   MODIFIED   (MM/DD/YY)
--    cheigham   08/28/91 -  Creation
--
-- $Header: ulcase1.ctl,v 1.1 1991/09/02 14:50:39 CHEIGHAM Stab $ case1.ctl
--
LOAD DATA
INFILE 'C:\20080627.CSV'
INTO TABLE POST
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(ZIPCODE,NO,DO,CITY)





C:\>SQLLDR USERID=SCOTT/TIGER CONTROL=C:\ULCASE1.CTL


커밋 시점에 도달 - 논리 레코드 개수 49984
커밋 시점에 도달 - 논리 레코드 개수 50048
커밋 시점에 도달 - 논리 레코드 개수 50112
커밋 시점에 도달 - 논리 레코드 개수 50176
커밋 시점에 도달 - 논리 레코드 개수 50240
커밋 시점에 도달 - 논리 레코드 개수 50286


좋은 예제들

 

'Programing > Oracle' 카테고리의 다른 글

Oracle - Remote  (0) 2008.07.29
Oracle - Export/Import  (0) 2008.07.29
Oracle - 링크  (0) 2008.07.29
oracle-참고  (0) 2008.07.29
Oracle - Listener  (0) 2008.07.29