SQL*Loaderの機能が様々な事例で示されています。事例は、ユーザーscott
が、デモンストレーション用のOracle Databaseのemp
表およびdept
表を所有している場合を想定して作成してあります。(事例の中では、さらに列が追加されていることもあります。)事例は、簡単なものから複雑なものの順に1から11までの番号が付けられています。
注意:
事例に使用するファイルは、$ORACLE_HOME/rdbms/demo
ディレクトリにあります。これらのファイルは、Oracle Database 12c Examplesメディア(以前のCompanionメディア)をインストールするとインストールされます。これらのファイル名の詳細は、表7-1を参照してください。
次に、事例の概要を示します。
事例1: 可変長データのロード: ストリーム形式のレコードをロードします。ここで扱うレコードのフィールドは、カンマで区切るか、または引用符で囲みます。データは制御ファイルの終わりに入っています。
事例2: 固定形式フィールドのロード: 別のデータ・ファイルからデータをロードします。
事例3: 自由区分形式ファイルのロード: フィールドがデリミタ付きで順序番号が付いている、ストリーム形式のレコードのデータをロードします。データは制御ファイルの終わりに入っています。
事例4: 結合された物理レコードのロード: 複数の物理レコードを結合して、データベースの1行に対応する論理レコードを構成します。
事例5: 複数表へのデータのロード: 1回の実行で、データを複数の表にロードします。
事例6: ダイレクト・パス・ロード方式を使用したデータのロード: ダイレクト・パス・ロード方法を使用してデータをロードします。
事例7: 書式化されたレポートからのデータの抽出: 書式化されたレポートからデータを抽出します。
事例8: パーティション化された表のロード: パーティション表をロードします。
事例9: LOBFILEのロード(CLOB): resume
というCLOB
列をemp
表に追加し、FILLER
フィールド(res_file
)を使用して、複数のLOBFILEをemp
表にロードします。
事例10: REFフィールドおよびVARRAYのロード: OIDを主キーとして利用するカスタマ表をロードして、注文した商品をVARRAY
に格納します。カスタマ表およびVARRAY
の注文商品を参照する注文表をロードします。
事例11: Unicodeキャラクタ・セットのデータのロード: Unicodeキャラクタ・セットのUTF16データを、リトル・エンディアンのバイト順序でロードします。この事例は、文字長セマンティクスを使用します。
通常、各事例は次の種類のファイルで構成されています。
制御ファイル(ulcase5.ctl
など)
データ・ファイル(ulcase5.dat
など)
セットアップ・ファイル(ulcase5.sql
など)
これらのファイルは、Oracle Database 12c Examplesメディア(以前のCompanionメディア)をインストールするとインストールされます。ファイルは、$ORACLE_HOME/rdbms/demo
ディレクトリにインストールされます。
事例用のサンプル・データが制御ファイルに含まれている場合、その事例の.dat
ファイルはありません。
事例2では特別な設定が不要なため、事例2の.sql
スクリプトはありません。事例7では、開始(セットアップ)スクリプトと終了(クリーンアップ)スクリプトの両方を実行する必要があります。
表7-1に、各事例に関連のあるファイルを示します。
表7-1 事例用ファイルおよび関連ファイル
事例 | .ctl | .dat | .sql |
---|---|---|---|
1 |
ulcase1.ctl |
なし |
ulcase1.sql |
2 |
ulcase2.ctl |
ulcase2.dat |
なし |
3 |
ulcase3.ctl |
なし |
ulcase3.sql |
4 |
ulcase4.ctl |
ulcase4.dat |
ulcase4.sql |
5 |
ulcase5.ctl |
ulcase5.dat |
ulcase5.sql |
6 |
ulcase6.ctl |
ulcase6.dat |
ulcase6.sql |
7 |
ulcase7.ctl |
ulcase7.dat |
ulcase7s.sql ulcase7e.sql |
8 |
ulcase8.ctl |
ulcase8.dat |
ulcase8.sql |
9 |
ulcase9.ctl |
ulcase9.dat |
ulcase9.sql |
10 |
ulcase10.ctl |
なし |
ulcase10.sql |
11 |
ulcase11.ctl |
ulcase11.dat |
ulcase11.sql |
通常、事例は次の手順で実行します(カレント・ディレクトリは、事例ファイルの格納場所である$ORACLE_HOME/rdbms/demo
にしてください)。
各事例を実行する前に、制御ファイルを確認する必要があります。制御ファイルの先頭には、事例で実施される内容に関する情報と把握する必要があるその他の特別な情報が含まれています。たとえば、事例6では、SQL*LoaderのコマンドラインにDIRECT=TRUE
を追加する必要があります。
事例用のログ・ファイルは、$ORACLE_HOME/rdbms/demo
ディレクトリにあらかじめ用意されているわけではありません。これは、各事例のログ・ファイルは、事例を実行したときに生成されるためです(ただし、LOG
パラメータを使用していることが条件です)。ログ・ファイルを生成しない場合は、コマンドラインでLOG
パラメータを指定しないようにします。