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

前
次

データ・フィールドの位置指定

データ・ファイルからデータをロードする場合は、フィールドの位置と長さをSQL*Loaderに対して明示する必要があります。論理レコード中のフィールド位置は、列指定の中でPOSITION句を使用して指定します。このときフィールド位置は、明示的に指定することも、前のフィールドからの相対位置で指定することもできます。POSITIONに対する引数は、カッコで囲む必要があります。文字長セマンティクスをデータ・ファイルに使用しても、start、endおよびintegerは、常にバイト単位です。

位置指定(pos_spec)句の構文は次のとおりです。

「データ・フィールドの位置指定」」では、位置指定句のパラメータについて説明します。

表10-1 位置指定句のパラメータ

パラメータ 説明

start

論理レコード中のデータ・フィールドの開始位置です。論理レコードの先頭バイト位置は1となります。

end

論理レコード中のデータ・フィールドの終了位置です。start-endと表記することも、start:endと表記することもできます。endを省略した場合、フィールド長は、データ・ファイル中のデータ型から導出されます。CHAR型では、startまたはendを省略し、長さ指定(CHAR(n))をしない場合、データ長が1として扱われます。データ型から長さを導出できない場合は、エラー・メッセージが出力されます。

*

対象となるデータ・フィールドが前のフィールドの直後にあることを示します。制御ファイル中の最初のデータ・フィールドに対して*を指定した場合、そのフィールドは論理レコードの先頭であると判断されます。位置指定に*を使用した場合、フィールド長はデータ型から導出されます。

+integer

+integerを指定してオフセットを使用すると、前フィールドの終了位置直後の位置から現行のフィールドをオフセットできます。この場合、現行のフィールドの値は、+integerで指定されたバイト数分スキップした後で読み込まれます。

POSITIONを完全に省略することも可能です。省略した場合のデータ・フィールドの位置指定は、POSITION(*)と指定した場合と同じです。