プライマリ・コンテンツに移動
Oracle® Databaseユーティリティ
12cリリース1 (12.1.0.2)
B71303-09
目次へ移動
目次
索引へ移動
索引

前
次

pos_spec句

pos_spec句を使用して、レコード内の列の位置を指定します。STRING SIZES ARE IN句を設定して、pos_specがバイト位置と文字位置のどちらを参照するかを決定します。可変幅キャラクタ・セットで文字位置を使用すると、固定幅キャラクタ・セットで文字位置を使用するより大幅に時間がかかります。pos_specが文字位置に使用されると、バイナリ文字データとマルチバイト文字データは、同じデータ・ファイルには指定できません。指定した場合の結果は保証されません。pos_spec句の構文は次のとおりです。

開始

startパラメータは、レコードの開始位置からフィールドの開始位置までのバイト数または文字数です。前のフィールド位置からの相対ではなく、レコードの絶対位置でフィールドの開始位置を設定します。

*

*パラメータで、フィールドが前のフィールドの直後のバイトまたは文字から始まることを指定します。これは、可変長フィールドの後に固定長フィールドが続く場合に有効です。このオプションは、レコードの最初のフィールドには使用できません。

increment

incrementパラメータを使用して、フィールドの開始位置を前のフィールドの終了位置からの固定のバイト数または固定の文字数で設定します。*-incrementを使用して、フィールドの開始位置をレコードの現在の位置の前に指定します。*+incrementを使用して、開始位置を現在の位置の後に移動します。

end

endパラメータを使用して、フィールドの終了バイトをレコード内の絶対バイトまたは絶対文字オフセットで指定します。startendとともに指定する場合、endは、startより小さくできません。*またはincrementendとともに指定し、startが特定のレコードのendより大きいオフセットと評価された場合、レコードは拒否されます。

length

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