External Table(9i 引入)可將平面檔映射為資料表,支援 SQL 查詢、並行、Join。但 DDL 語法與 SQL*Loader 控制檔不同,手寫易錯。
sqlldr scott/tiger CONTROL=loademp.ctl EXTERNAL_TABLE=GENERATE_ONLY
控制檔 `loademp.ctl`:
LOAD DATA
INFILE 'emp.dat'
APPEND INTO TABLE emp
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
(empno, ename, job, mgr, hiredate DATE 'DD-MON-YY', sal, comm, deptno)
執行 `sqlldr ... EXTERNAL_TABLE=GENERATE_ONLY` 後,Log 含:
CREATE DIRECTORY ext_tab_dir AS '/data/load';
CREATE TABLE emp_ext
( empno NUMBER(4), ename VARCHAR2(10), job VARCHAR2(9),
mgr NUMBER(4), hiredate DATE, sal NUMBER(7,2), comm NUMBER(7,2), deptno NUMBER(2)
)
ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY ext_tab_dir
ACCESS PARAMETERS
( RECORDS DELIMITED BY NEWLINE
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
MISSING FIELD VALUES ARE NULL
)
LOCATION ('emp.dat')
)
REJECT LIMIT UNLIMITED;