DELIMITED BY
句を使用して、レコードの終わりを識別する文字を指定します。
DELIMITED BY NEWLINE
を指定する場合、実際に使用される値はプラットフォームに依存します。UNIXプラットフォームでは、NEWLINE
は「\n
」です。Windowsオペレーティング・システムでは、NEWLINE
は「\r\n
」とみなされます。
DELIMITED
BY
string
を指定する場合、string
は、テキストまたは一連の16進数のいずれかになります。16進数の場合は、OXまたはXで開始して引用符で囲みます。テキストの場合は、データ・ファイルのキャラクタ・セットに変換され、その結果がレコードの境界の識別に使用されます。詳細は、「string」を参照してください。
次の条件を満たす場合は、デリミタの識別には16進数字を使用する必要があります。
アクセス・パラメータのキャラクタ・セットがデータ・ファイルのキャラクタ・セットとは異なる場合。
区切り文字列中にデータ・ファイルのキャラクタ・セットに変換できない文字がある場合。
16進数字はバイトに変換されます。16進文字列ではキャラクタ・セットの変換は実行されません。
ファイルの終わりがレコード終了記号の前で検出された場合、アクセス・ドライバは、終了記号が検出された場合と同様に、ファイルの終わりまでの処理されていないすべてのデータをレコードの部分とみなします。
注意:
デリミタ付きのレコードには、VARCHAR
およびVARRAW
のバイナリ数値を含むバイナリ・データを含めないでください。バイナリ・データを含めると、そのバイナリ・データがデリミタの検索中に文字として解釈されるため、エラーまたは破損が発生します。
次に、DELIMITED BY
レコードの使用例を示します。
CREATE TABLE emp_load (first_name CHAR(15), last_name CHAR(20), year_of_birth CHAR(4)) ORGANIZATION EXTERNAL (TYPE ORACLE_LOADER DEFAULT DIRECTORY ext_tab_dir ACCESS PARAMETERS (RECORDS DELIMITED BY '|' FIELDS TERMINATED BY ',' (first_name CHAR(7), last_name CHAR(8), year_of_birth CHAR(4))) LOCATION ('info.dat')); Alvin,Tolliver,1976|Kenneth,Baer,1963|Mary,Dube,1973