SQL*Loaderのエクスプレスモードでのロード手順

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

以上でエクスプレスモードでのロードは完了になります。