制御ファイルの列オブジェクトは、その属性によって記述されています。列オブジェクトの基になるオブジェクト型がNOT FINALであると宣言されると、制御ファイルの列オブジェクトは、基になるオブジェクト型から導出されたサブタイプの(導出および宣言された)属性によって記述されます。データ・ファイルでは、列オブジェクトの各属性に対応するデータは、単純なリレーショナル列に対応するデータ・フィールドと同様の形式でデータ・ファイルに記述されています。
注意:
SQL*Loaderによる列オブジェクトなどの複合データ型のサポートによって、制御ファイル内に、2つの同じフィールド名が存在する可能性があります。1つは列に対応し、もう1つは列オブジェクトの属性に対応する場合です。制御ファイルに同名のフィールドが存在する場合、特定の句がフィールド(たとえば、WHEN
、NULLIF
、DEFAULTIF
、SID
、OID
、REF
、BFILE
など)を参照できるため、名前の重複が発生する場合があります。
したがって、フィールドを参照する句を使用する場合、フルネームを使用する必要があります。たとえば、フィールドfld1
がCOLUMN
OBJECT
であると指定され、フィールドfld2
を含む場合、NULLIF
などの句でfld2
を指定するときは、完全なフィールド名fld1.fld2
を使用する必要があります。
次に、列オブジェクトのロードに関する例を示します。