SQL*Loaderのエクスプレスモードでのロード手順について解説します。
SQL*Loaderのエクスプレスモード
SQL*Loaderには12cよりエクスプレスモードが用意されております。
エクスプレスモードではSQL*Loaderの制御ファイルが不要で、簡単にデータのロードを行うことができます。
今回はエクスプレスモードを使用してデータをロードする手順を紹介します。
エクスプレスモードでのデータのロード
今回はEMP表に対してロードを行います。
EMP表は以下のような構成になっています。
SQL> desc emp
Name Null? Type
----------------------- -------- ----------------
EMPNO NUMBER(4)
ENAME VARCHAR2(20)
JOB VARCHAR2(20)
このEMP表に対してロードするデータファイルを作成します。
ファイル名は表名と同じにする必要があるので、emp.datとします。
$ cat emp.dat
1001,Smith,Manager
1002,Jones,Engineer
1003,Johnson,Analyst
1004,Brown,Sales
1005,Taylor,Developer
emp.datをカレントディレクトリに格納し、ロードを実行します。
$ sqlldr test/password@pdb2 table=emp
...
Express Mode Load, Table: EMP
Path used: External Table, DEGREE_OF_PARALLELISM=AUTO
SQL*Loader-816: error creating temporary directory object SYS_SQLLDR_XT_TMPDIR_00000 for file emp.dat
ORA-01031: insufficient privileges
Help: https://docs.oracle.com/error-help/db/ora-01031/
SQL*Loader-579: switching to direct path for the load
SQL*Loader-583: ignoring trim setting with direct path, using value of LDRTRIM
SQL*Loader-584: ignoring DEGREE_OF_PARALLELISM setting with direct path, using value of NONE
Express Mode Load, Table: EMP
Path used: Direct
Load completed - logical record count 5.
Table EMP:
5 Rows successfully loaded.
Check the log file:
emp.log
for more information about the load.
エクスプレスモードではまず外部表を用いたロードを試みます。
外部表が使用できない場合はダイレクトパスロードでロードされます。
今回はTESTユーザにディレクトリオブジェクト、外部表を作成する権限がないため、ダイレクトパスロードが使用されています。
EMP表をSELECTするとデータがロードできていることが確認できます。
SQL> select * from emp;
EMPNO ENAME JOB
---------- -------------------- --------------------
1001 Smith Manager
1002 Jones Engineer
1003 Johnson Analyst
1004 Brown Sales
1005 Taylor Developer
以上でエクスプレスモードでのロードは完了になります。