7.1 SQL*Loaderの機能

SQL*Loaderにより、外部ファイルからOracle Databaseの表にデータがロードされます。

SQL*Loaderの強力なデータ解析エンジンによって、あらゆるデータ形式のデータファイルに対応できます。SQL*Loaderを使用して、次のことが可能です。

  • データ・ファイルがデータベースと異なるシステム上にある場合のネットワークを介したデータのロード。
  • 同一のロード・セッションでの複数のデータ・ファイルからのデータのロード。
  • 同一のロード・セッションでの複数の表へのデータのロード。
  • 自動パラレル・ロード(ダイレクト・パス・ロードと従来型パス・ロードのどちらでも可)を使用した複数の大きい表(単一表とシャード表のどちらでも可)からのデータのロード。
  • データの文字セットの指定。
  • ロード・データの選択(レコード値に基づいたロード)。
  • ロード前の、SQL関数を使用したデータ処理。
  • 指定した列に対する、一意の順序キーの生成。
  • オペレーティング・システムのファイル・システムを使用したデータ・ファイルへのアクセス。
  • ディスク、テープまたはNamed Pipeからのデータのロード。
  • 高度なエラー・レポートの生成による、トラブルシューティングの支援。
  • 複合オブジェクト・リレーショナル・データの任意のロード。
  • セカンダリ・データ・ファイルを使用した、ラージ・オブジェクト(LOB)およびコレクションのロード。
  • 従来型ロード、ダイレクト・パス・ロードまたは外部表ロードの使用。

LOBは、Oracle Database内部に大量のデータを保持するために使用されます。SQL*Loaderおよび外部表ではLOBFILEが使用されます。LOB用のデータは非常に大きくなり、SQL*Loaderデータ・ファイルで行に入りきらない可能性があります。また、ファイルにバイナリ・データが含まれている場合も、行に入りきらない可能性があります。かわりに、データ・ファイルには、LOBフィールドのデータを含むファイル名が含まれています。その場合、SQL*Loaderおよび外部表コードにより、LOBFILEが開かれ、そのコンテンツが現在の行のLOB列にロードされます。その後、データは他の列タイプのデータと同様に、サーバーに渡されます。

JSON列は、スカラーとLOBのロードに使用されるものと同じ方法を使用してロードできます

SQL*Loaderは、制御ファイルを指定する場合と指定しない場合の2つの方法で使用できます。制御ファイルは、SQL*Loaderの動作と、ロードに使用される1つ以上のデータ・ファイルを制御します。制御ファイルを使用すると、ロード操作を詳細に制御できるため、より複雑なロード環境に対応できます。ただし、単純なロードでは、制御ファイルを指定せずにSQL*Loaderを使用できます(これはSQL*Loaderエクスプレス・モードと呼ばれます)。

SQL*Loaderの出力先は、Oracle Databaseデータベース(データがロードされる場所)、ログ・ファイル、拒否されたレコードが存在する場合の不良ファイルであり、廃棄ファイルに出力される場合もあります。

次の図に、制御ファイルを使用する標準的なSQL*Loaderセッションのフローの例を示します。

図7-1 SQL*Loaderの概要

図7-1の説明が続きます
図7-1 SQL*Loaderの概要の説明