固定レコード形式のファイルでは、データ・ファイルにあるすべてのレコードが同じバイト長です。この形式は柔軟性はありませんが、その結果、可変長またはストリーム形式よりも高いパフォーマンスを得ることができます。また、固定形式は簡単に指定できます。次に例を示します。
INFILE datafile_name "fix n
"
ここでは、特殊なデータ・ファイルが、SQL*Loaderによって全レコードがn
バイト長の固定レコード形式で解釈されるように指定しています。
例7-1に、固定レコード形式で解釈されるデータ・ファイル(example1.dat
)を指定する制御ファイルを示します。この例のデータ・ファイルには5つの物理レコードが含まれ、各レコードには従業員の番号と名前を含むフィールドがあります。5つの各フィールドは空白を含めて11バイト長です。この例を説明する目的で、レコードの空白を示すためにピリオドが使用されていますが、実際のレコードにはピリオドはありません。この点に注意すると、1つ目のレコード396,...ty,.
は、ちょうど11バイトです(シングルバイト・キャラクタ・セットだとします)。2つ目のレコードは4922,beth,
で、改行文字(\n
)が後に続き、11バイトとなります。(改行文字は固定レコード形式では必要ありません。ここでは単に、使用された場合はレコード長のバイトとしてカウントされることを説明するために使用されています。)
文字長セマンティクスが使用されているファイルでも、長さは常にバイト単位で解析されます。これは、文字長セマンティクスで処理されるフィールドとバイト長セマンティクスで処理されるフィールドがファイル内に混在する可能性があるため必要です。詳細は、「文字長セマンティクス」を参照してください。
例7-1 固定レコード形式でのデータのロード
load data infile 'example1.dat' "fix 11" into table example fields terminated by ',' optionally enclosed by '"' (col1, col2)
example1.dat:
396,...ty,.4922,beth,\n 68773,ben,. 1,.."dave", 5455,mike,.