pos_spec
句を使用して、レコード内の列の位置を指定します。STRING
SIZES
ARE
IN
句を設定して、pos_spec
がバイト位置と文字位置のどちらを参照するかを決定します。可変幅キャラクタ・セットで文字位置を使用すると、固定幅キャラクタ・セットで文字位置を使用するより大幅に時間がかかります。pos_spec
が文字位置に使用されると、バイナリ文字データとマルチバイト文字データは、同じデータ・ファイルには指定できません。指定した場合の結果は保証されません。pos_spec
句の構文は次のとおりです。
*
パラメータで、フィールドが前のフィールドの直後のバイトまたは文字から始まることを指定します。これは、可変長フィールドの後に固定長フィールドが続く場合に有効です。このオプションは、レコードの最初のフィールドには使用できません。
increment
パラメータを使用して、フィールドの開始位置を前のフィールドの終了位置からの固定のバイト数または固定の文字数で設定します。*-
increment
を使用して、フィールドの開始位置をレコードの現在の位置の前に指定します。*+
increment
を使用して、開始位置を現在の位置の後に移動します。
end
パラメータを使用して、フィールドの終了バイトをレコード内の絶対バイトまたは絶対文字オフセットで指定します。start
をend
とともに指定する場合、end
は、start
より小さくできません。*
またはincrement
をend
とともに指定し、start
が特定のレコードのend
より大きいオフセットと評価された場合、レコードは拒否されます。
length
パラメータで、フィールドの終了位置を開始位置からの固定のバイト数または文字数で指定します。開始位置を*
で指定すると、固定長フィールドに有効です。
次に、pos_spec
の使用例を示します。その後に、ロードが可能なデータ・ファイルのサンプルを示します。
CREATE TABLE emp_load (first_name CHAR(15), last_name CHAR(20), year_of_birth INT, phone CHAR(12), area_code CHAR(3), exchange CHAR(3), extension CHAR(4)) ORGANIZATION EXTERNAL (TYPE ORACLE_LOADER DEFAULT DIRECTORY ext_tab_dir ACCESS PARAMETERS (FIELDS RTRIM (first_name (1:15) CHAR(15), last_name (*:+20), year_of_birth (36:39), phone (40:52), area_code (*-12: +3), exchange (*+1: +3), extension (*+1: +4))) LOCATION ('info.dat')); Alvin Tolliver 1976415-922-1982 Kenneth Baer 1963212-341-7912 Mary Dube 1973309-672-2341