CHARACTERSET
パラメータを指定して、SQL*Loaderに入力データ・ファイルのキャラクタ・セットを示します。CHARACTERSET
パラメータが指定されていない場合、すべてのデータ・ファイルに対するデフォルトのキャラクタ・セットは、NLS_LANG
パラメータで定義されたセッション・キャラクタ・セットです。文字データ(SQL*Loaderデータ型のCHAR
、VARCHAR
、VARCHARC
、数値型EXTERNAL
および日時データ型と期間データ型のフィールド)のみが、データ・ファイルのキャラクタ・セットに影響されます。
CHARACTERSET
の構文は次のとおりです。
CHARACTERSET char_set_name
char_set_name
変数で、キャラクタ・セット名を指定します。通常、指定された名前はOracleがサポートしているキャラクタ・セットの名前である必要があります。
UnicodeのUTF-16エンコーディングの場合は、名前はAL16UTF16でなくUTF16を使用します。AL16UTF16(UTF-16エンコードされたデータに対してサポートされるOracleキャラクタ・セット名)は、ビッグ・エンディアンのバイト順序のUTF-16データにのみ使用されます。ただし、データ・ファイルを作成したシステムのバイト順序を使用してデータを設定することが許可されているため、データ・ファイル内のデータはビッグ・エンディアンまたはリトル・エンディアンのいずれかにできます。このため、異なるキャラクタ・セット名(UTF16)が使用されます。また、キャラクタ・セット名AL16UTF16もサポートされています。ただし、リトル・エンディアンのバイト順序のデータ・ファイルにAL16UTF16を指定すると、SQL*Loaderによって警告メッセージが発行され、データ・ファイルはリトル・エンディアンとして処理されます。
CHARACTERSET
パラメータは、LOBFILEおよびSDFのみでなくプライマリ・データ・ファイルに対しても指定できます。すべてのプライマリ・データ・ファイルは同じキャラクタ・セットとみなされます。INFILE
パラメータの前に指定されるCHARACTERSET
パラメータは、プライマリ・データ・ファイルのリスト全体に適用されます。CHARACTERSET
パラメータがプライマリ・データ・ファイルに対して指定される場合、指定された値は、LOBFILEおよびSDFのデフォルトとしても使用されます。LOBFILEまたはSDF仕様でCHARACTERSET
パラメータを指定すると、デフォルト設定は上書きされます。
CHARACTERSET
パラメータで指定されたキャラクタ・セットは、制御ファイルのINFILE
句で指定されたデータには適用されません。制御ファイルは、常に、NLS_LANG
パラメータで指定されているセッション・キャラクタ・セットを使用して処理されます。したがって、NLS_LANG
パラメータで指定されているセッション・キャラクタ・セット以外のキャラクタ・セットでデータをロードするには、そのデータを別のデータ・ファイルに置く必要があります。
関連項目:
サポートされているキャラクタ・セット名の詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください
リトル・エンディアンのUTF-16でエンコーディングされたデータを含むデータ・ファイルをロードする例については、「事例11: Unicodeキャラクタ・セットのデータのロード」を参照してください。(事例の使用方法については、「SQL*Loaderの事例」を参照してください。)