プライマリ・コンテンツに移動
Oracle® Databaseユーティリティ
12cリリース1 (12.1.0.2)
B71303-09
目次へ移動
目次
索引へ移動
索引

前
次

SQL*Loaderと外部表との処理内容の違い

この項では、外部表を使用したデータのロード方法(ORACLE_LOADERアクセス・ドライバを使用)と、SQL*Loaderの従来型パス・ロードおよびダイレクト・パス・ロードを使用したデータのロード方法の重要な違いについて説明します。ここで示す情報は、ORACLE_DATAPUMPアクセス・ドライバには適用されません。

複数のプライマリ入力データ・ファイル

SQL*Loaderのロードを使用したプライマリ入力データ・ファイルが複数存在する場合は、入力データ・ファイルごとに不良ファイルおよび廃棄ファイルが作成されます。外部表ロードでは、すべての入力データ・ファイルに対する不良ファイルおよび廃棄ファイルは、1つずつのみです。外部表ロードでパラレル・アクセス・ドライバが使用される場合は、各アクセス・ドライバに不良ファイルおよび廃棄ファイルが含まれます。

構文およびデータ型

次の操作は、外部表ロードではサポートされていません。

  • CONTINUEIFまたはCONCATENATEを使用した、1つの論理レコードへの複数の物理レコードの結合

  • SQL*Loaderデータ型(GRAPHICGRAPHIC EXTERNALおよびVARGRAPHIC)のロード

  • データベースの列型(LONG、ネストした表、VARRAYREF、主キーREFおよびSID)の使用

バイト順マーク(BOM)

SQL*Loaderでは、プライマリ・データ・ファイルにUnicodeキャラクタ・セット(UTF8またはUTF16)が使用され、バイト順序マーク(BOM)が含まれている場合、バイト順序マークは対応する不良ファイルおよび廃棄ファイルの先頭に書き込まれます。外部表ロードでは、バイト順序マークは不良ファイルおよび廃棄ファイルの先頭に書き込まれません。

デフォルトのキャラクタ・セット、日付マスク、小数点区切り

データ・ファイルのフィールドでは、クライアントのNLS環境変数によって、デフォルトのキャラクタ・セット、日付マスクおよび小数点区切りが決定されます。外部表のフィールドでは、NLSパラメータのデータベース設定によって、デフォルトのキャラクタ・セット、日付マスクおよび小数点区切りが決定されます。

バックスラッシュ・エスケープ文字の使用

SQL*Loaderでは、次のようにバックスラッシュ(\)エスケープ文字を使用して、一重引用符を囲み文字として使用できます。

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\''

外部表では、文字列内でバックスラッシュ・エスケープ文字を使用すると、エラーが発生します。解決策として、次のように二重引用符を使用して、一重引用符を囲み文字として使用できます。

TERMINATED BY ',' ENCLOSED BY "'"