Unicodeキャラクタ・セットのデータ・ファイルには、ファイルの最初のバイトにBOMと一致するバイナリ・データが含まれています。たとえば、integer(2)型の値0xFEFF = 65279小数点は、UTF16のビッグ・エンディアンBOMと一致します。この場合、SQL*Loaderを使用してデータ・ファイルの最初のバイトをデータとして読み込むことができます。また、値NOCHECK
でBYTEORDERMARK
パラメータを指定して、SQL*LoaderによってBOMを確認しないようにできます。BYTEORDERMARK
パラメータの構文は次のとおりです。
BYTEORDERMARK
NOCHECK
を指定すると、SQL*LoaderではBOMが確認されず、データ・ファイルのすべてのデータがデータとして読み込まれます。
BYTEORDERMARK
CHECK
を指定すると、BOMを確認するようSQL*Loaderに指示します。これはUnicodeキャラクタ・セットのデータ・ファイルについてのデフォルト動作です。ただし、この指定は明確化の目的で制御ファイル内で使用されることがあります。Unicode以外のキャラクタ・セットを使用するデータ・ファイルについてBYTEORDERMARK
CHECK
を指定すると、エラーとなります。
BYTEORDERMARK
パラメータには、次の特長があります。
SQL*Loader制御ファイル内のオプションのBYTEORDER
パラメータの後に置かれます。
プライマリ・データ・ファイルの構文指定に適用される以外に、LOBFILEとセカンダリ・データ・ファイル(SDF)にも適用されます。
異なるデータ・ファイルに異なるBYTEORDERMARK
値を指定できます。ただし、INFILE
パラメータの前のBYTEORDERMARK
指定が、プライマリ・データ・ファイルのリスト全体に適用されます。
プライマリ・データ・ファイルに対するBYTEORDERMARK
指定は、LOBFILEおよびSDFに対するデフォルトとしても使用されます。ただし、LOBFILEまたはSDFでUnicode以外のキャラクタ・セットが使用されている場合は、値CHECK
は無視されます。LOBFILEおよびセカンダリ・データ・ファイルに対するこのデフォルト設定は、LOBFILEまたはSDF指定にBYTEORDERMARK
を指定することによって上書きできます。