2011. 3. 8. 22:02


 


테이블의 external file로 부터 데이터를 load한다. 데이터의 포맷에 거의 제한이 없는 강력한

  data parsing engine이다.

 

  Input data file : SQL*Loader는 컨트롤 파일에 명세되어있는 파일에서 데이터를 읽는다.

                    SQL*Loader의 관점에서 데이터 파일의 데이터는 record로 이루어져 있다.

                    데이터 파일의 record format은 디폴드로 stream record format로 이 외에

                    fixed record format, variable record format 등이 있다. Record format은

                    컨트롤 파일 INFILE 파라미터로 명세되어 있다.

 

  Control file : 텍스트 파일로 DDL이 포함되어 있다. 

                   Load될 데이터의 위치, data format, parse와 interpret 방법, 데이터를

                   삽입할 위치 등이 저장되어 있다.

 

  Log file : SQL*Loader 실행시 생기는 파일로 log file을 생성할 수 없으면 실행이 종료된다.

              load에 대한 자세한 요약과, load 동안에 발생한 에러들이 기록되어 있다.

 

  Bad file : SQL*Loader와 오라클에 의해 거부된 record를 담고있는 파일이다.

 

  Discard file : Discard file이 enabled 될 때 생성되는 파일로 컨트롤 파일에 있는 record

                   선택 기준과 맞지 않는 파일을 포함하고 있다.

 

예제)

 

[OS] sqlplus scott/tiger

 

SQL> drop table t1 purge;
SQL> create table t1 as select * from emp where 1=2;

SQL> select * from t1;

no rows selected

 

SQL> !

 

[OS] cd

 

-- 데이터 파일 생성

[OS] vi a.txt

7782 CLARK      MANAGER   7839  2572.50          10
7839 KING       PRESIDENT       5500.00          10
7934 MILLER     CLERK     7782   920.00          10
7566 JONES      MANAGER   7839  3123.75          20
7499 ALLEN      SALESMAN  7698  1600.00   300.00 30
7654 MARTIN     SALESMAN  7698  1312.50  1400.00 30
7658 CHAN       ANALYST   7566  3450.00          20
7654 MARTIN     SALESMAN  7698  1312.50  1400.00 30

 

-- 컨트롤 파일 생성

[OS] vi a.ctl

LOAD DATA
INFILE 'a.txt'
INTO TABLE t1
(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)

 

 

[OS] ls a*

[OS] sqlldr USERID=scott/tiger CONTROL=a.ctl direct=y

  Commit point reached - logical record count 8

 

[OS] exit

SQL> select * from t1;









'Oracle > AdminⅠ,Ⅱ' 카테고리의 다른 글

External Table  (0) 2011.03.08
ORACLE 정보 확인 view  (0) 2011.03.08
용어정리  (0) 2011.03.06
Oracle 9i 에서 undo Tablespace 를 변경하는 방법  (0) 2011.03.03
OMF (Oracle Managed Files) : 실습  (0) 2011.03.02
Posted by 나른한스누피