field_list句を使用して、データ・ファイルのフィールドおよびそのデータ型を識別します。field_list句では、次のように評価します。
フィールドにいずれのデータ型も指定されない場合、データ型は、デリミタなしフィールドではCHAR(1)、デリミタ付きフィールドではCHAR(255)である。
いずれのフィールド・リストも指定されない場合、データ・ファイルのフィールドは外部表と同じ順序である。データベースの列がCHARまたはVARCHARではない場合、すべてのフィールドのデータ型は、CHAR(255)となる。データベースの列がCHARまたはVARCHARの場合、フィールドのデータ型はCHARのままであるが、その長さは255か列の長さでいずれか長い方の値となる。
いずれのフィールド・リストも指定されず、delim_spec句も指定されない場合、データ・ファイルのフィールドは外部表のフィールドと同じ順序である。すべてのフィールドは、CHAR(255)であり、カンマで終了する。
次の例では、field_listおよびdelim_specを含まない外部表の定義を示します。その後に、ロードが可能なデータ・ファイルのサンプルを示します。
CREATE TABLE emp_load (first_name CHAR(15), last_name CHAR(20), year_of_birth INT)
ORGANIZATION EXTERNAL (TYPE ORACLE_LOADER DEFAULT DIRECTORY ext_tab_dir
ACCESS PARAMETERS (FIELDS TERMINATED BY "|")
LOCATION ('info.dat'));
Alvin|Tolliver|1976
Kenneth|Baer|1963
Mary|Dube|1973
field_list句の構文は次のとおりです。
field_name
field_nameは、データ・ファイルのフィールド名を識別する文字列です。文字列が引用符内にない場合、フィールド名は外部表の列名に一致され、大文字になります。
field_nameが問合せで参照される外部表の列名と一致する場合は、このフィールド値が外部表列の値に使用されます。名前が外部表で参照されたいずれの名前にも一致しない場合、フィールドはロードされません。ただし、このフィールドは句の評価(たとえば、WHENまたはNULLIF)には使用できます。
pos_spec
pos_spec句を使用して、レコード内の列の位置を指定します。構文の詳細は、「pos_spec句」を参照してください。
datatype_spec
datatype_spec句を使用して、フィールドのデータ型を指定します。datatype_specが指定されない場合、アクセス・ドライバは、データ型はCHAR(255)であると想定します。構文の詳細は、「datatype_spec句」を参照してください。
init_spec
init_spec句を使用して、フィールドがNULLになる、またはデフォルトの値を設定されるタイミングを指定します。構文の詳細は、「init_spec句」を参照してください。