7.13 SQL*Loaderの事例
SQL*Loaderの機能の使用方法を学習できるように、Oracleでは実行可能な様々な事例を提供しています。
- Oracle SQL*Loaderの事例へのアクセス方法と使用方法
Oracleでは、SQL*Loaderの機能の実例を示す11件の事例を提供しています - 事例用ファイル
SQL*Loaderの各事例ファイルには、その事例の使用に必要なファイルのセットが含まれています。 - 事例の実行
SQL*Loaderの事例を実行するための一般的なステップは、その他の事例を実行する場合とほとんど同じです。 - 事例用ログ・ファイル
事例用のログ・ファイルは、$ORACLE_HOME/rdbms/demoディレクトリにあらかじめ用意されているわけではありません。 - 事例の結果確認
事例の実行結果を確認するには、SQL*Plusを起動して、事例でロードされた表から選択操作を実行します。
親トピック: SQL*Loaderの使用方法の理解
7.13.1 Oracle SQL*Loaderの事例へのアクセス方法と使用方法
Oracleでは、SQL*Loaderの機能の実例を示す11件の事例を提供しています
事例は、ユーザーscottが、デモンストレーション用のOracle Databaseのemp表およびdept表を所有している場合を想定して作成してあります。(一部の事例には、その他の列も追加されています)。事例には、1から11までの番号が付けられていて、最も単純なシナリオから始まりますが、先に進むにつれて複雑になります。
ノート:
事例に使用するファイルは、$ORACLE_HOME/rdbms/demoディレクトリにあります。これらのファイルは、Oracle Database Examples (以前のCompanion)メディアをインストールするとインストールされます。
次に、事例の概要を示します。
-
事例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データを、リトル・エンディアンのバイト順序でロードします。この事例は、文字長セマンティクスを使用します。
親トピック: SQL*Loaderの事例
7.13.2 事例用ファイル
SQL*Loaderの各事例用ファイルには、その事例の使用に必要なファイルのセットが含まれています。
使用上のノート
通常、各事例は次の種類のファイルで構成されています。
-
制御ファイル(
ulcase5.ctlなど) -
データ・ファイル(
ulcase5.datなど) -
セットアップ・ファイル(
ulcase5.sqlなど)
これらのファイルは、Oracle Database Examples (以前のCompanion)メディアをインストールするとインストールされます。ファイルは$ORACLE_HOME/rdbms/demoディレクトリにインストールされます。
事例用の例データが制御ファイルに含まれている場合、その事例の.datファイルはありません。
事例2では特別な設定が不要なため、事例2の.sqlスクリプトはありません。事例7では、開始(セットアップ)スクリプトと終了(クリーンアップ)スクリプトの両方を実行する必要があります。
次の表に、各事例に関連のあるファイルを示します。
表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 |
親トピック: SQL*Loaderの事例
7.13.3 事例の実行
SQL*Loaderの事例を実行するための一般的なステップは、その他の事例を実行する場合とほとんど同じです。
$ORACLE_HOME/rdbms/demoディレクトリに移動していることを確認してください。事例用ファイルは、このディレクトリに格納されています。
また、各事例を実行する前に、制御ファイルを確認する必要もあります。制御ファイルの先頭には、事例で実施される内容に関する情報と把握する必要があるその他の特別な情報が含まれています。たとえば、事例6では、SQL*LoaderのコマンドラインにDIRECT=TRUEを追加する必要があります。
親トピック: SQL*Loaderの事例
7.13.4 事例用ログ・ファイル
事例用のログ・ファイルは、$ORACLE_HOME/rdbms/demoディレクトリにあらかじめ用意されているわけではありません。
これは、各事例のログ・ファイルは、事例を実行したときに生成されるためです(ただし、LOGパラメータを使用していることが条件です)。ログ・ファイルを生成しない場合は、コマンドラインでLOGパラメータを指定しないようにします。
親トピック: SQL*Loaderの事例