https://docs.oracle.com/cd/F19136_01/sutil/oracle_loader-access-driver.html
https://docs.oracle.com/cd/F19136_01/sutil/oracle_datapump-access-driver.html
LOADERアクセスドライバ(delimited by newline)
vi exttab1.dat
360,Jane,Janus,ST_CLERK,121,17-MAY-2001,3000,0,50,jjanus
361,Mark,Jasper,SA_REP,145,17-MAY-2001,8000,.1,80,mjasper
362,Brenda,Starr,AD_ASST,200,17-MAY-2001,5500,0,10,bstarr
363,Alex,Alda,AC_MGR,145,17-MAY-2001,9000,.15,80,aalda
※末尾に空行があるとエラーとなる
CREATE TABLE test.ext_employees
(employee_id NUMBER(4),
first_name VARCHAR2(20),
last_name VARCHAR2(25),
job_id VARCHAR2(10),
manager_id NUMBER(4),
hire_date DATE,
salary NUMBER(8,2),
commission_pct NUMBER(2,2),
department_id NUMBER(4),
email VARCHAR2(25)
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY ORA_DIR
ACCESS PARAMETERS
(
records delimited by newline
fields terminated by ','
( employee_id, first_name, last_name, job_id, manager_id,
hire_date char date_format date mask "dd-mon-yyyy",
salary, commission_pct, department_id, email
)
)
LOCATION ('exttab1.dat')
)
;
select * from test.ext_employees;
LOADERアクセスドライバ(プリプロセッサ句使用)
vi uncompress.sh
/usr/bin/gunzip < $1
chmod 777 uncompress.sh
cp -p exttab1.dat exttab2.dat
gzip exttab2.dat
CREATE TABLE test.ext_employees2
(employee_id NUMBER(4),
first_name VARCHAR2(20),
last_name VARCHAR2(25),
job_id VARCHAR2(10),
manager_id NUMBER(4),
hire_date DATE,
salary NUMBER(8,2),
commission_pct NUMBER(2,2),
department_id NUMBER(4),
email VARCHAR2(25)
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY ORA_DIR
ACCESS PARAMETERS
(
records delimited by newline
PREPROCESSOR 'uncompress.sh'
fields terminated by ','
( employee_id, first_name, last_name, job_id, manager_id,
hire_date char date_format date mask "dd-mon-yyyy",
salary, commission_pct, department_id, email
)
)
LOCATION ('exttab2.dat.gz')
)
;
select * from test.ext_employees2;
DATAPUMPアクセスドライバ
CREATE TABLE test.ext_tab1
ORGANIZATION EXTERNAL
(
TYPE ORACLE_DATAPUMP
DEFAULT DIRECTORY ORA_DIR
LOCATION ('exttab1.dmp')
)
AS SELECT * FROM test.tab1;
select * from test.ext_tab1;