테이블의 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 |