フィールドの指定方法には、固定フィールド指定、および浮動フィールド指定があります。
固定フィールド指定は、レコードの先頭からのバイト位置によって区分されるフィールドの指定方法です。
フィールドの位置は全レコードで共通です。
浮動フィールド指定は、フィールド分離文字によって区分されるフィールドの指定方法です。
テキストファイルのときに指定できます。フィールド分離文字の位置によってフィールドの位置が決定されるため、レコードごとにフィールドの位置は異なります。浮動フィールド指定には、以下に示す3つの形式があります。
テキストファイル浮動フィールド指定の形式
任意のフィールド分離文字を指定可能で、フィールドを囲むダブルクォーテーションを考慮しません。
テキストファイルCSV形式
コンマをフィールド分離文字とし、フィールドを囲むダブルクォーテーションを考慮します。
テキストファイルTSV形式
タブをフィールド分離文字とし、フィールドを囲むダブルクォーテーションを考慮します。
注意
テキストファイル浮動フィールド指定の注意事項
フィールドの先頭にダブルクォーテーション(")が存在しても、フィールドを囲むダブルクォーテーション(")として扱いません。
キーフィールド、集約フィールド、選択フィールド、および再編成フィールドに、フィールド分離文字、およびレコード分離文字を含むことはできません。
フィールド分離文字の指定を省略した場合は、空白とタブがフィールド分離文字となります。フィールド分離文字の指定を省略し、空白が連続している場合は、最初の空白がフィールド分離文字となり、残りの空白はフィールドの一部とみなして動作します。
例) 空白が連続している場合(フィールド分離文字の指定を省略)
field1□□□field2□field3 2番目のフィールドは「□□field2」となります。なお、「□」は空白を意味します。
フィールド分離文字を指定した場合は、フィールド分離文字が連続すると空フィールドが存在するとみなして処理します。
例) 2番目のフィールドが空フィールドの場合(「;」をフィールド分離文字として指定)
field1;;field3
自己規定値にフィールド分離文字、およびレコード分離文字を含むことはできません。
テキストファイルCSV形式の注意事項
ダブルクォーテーション(")で囲まれたフィールド中にレコード分離文字、およびフィールド分離文字(コンマ)が含まれている場合、フィールドのデータとして扱います。なお、ダブルクォーテーション(")で囲まれているとは、先頭がダブルクォーテーション(")で始まるフィールドで、囲みの終わりを表すダブルクォーテーション(")までの範囲を指します。
例1) 2番目のフィールドがダブルクォーテーションで囲まれているレコード
field1,"field2",field3 2番目のフィールドの値は「field2」となります。
例2) 2番目のフィールドの途中までがダブルクォーテーションで囲まれているレコード
field1,"field2"data,field3 2番目のフィールドの値は「field2data」となります。
例3) 2番目のフィールドがダブルクォーテーションで囲まれているレコード
field1,"field2,field2",field3 2番目のフィールドの値は「field2,field2」となります。
ダブルクォーテーション(")で囲まれたフィールド内のダブルクォーテーション(")は2つ連続している必要があります。
例) 2番目のフィールドにダブルクォーテーションを含む場合
field1,"field2""field2",field3 2番目のフィールドの値は「field2"field2」となります。
フィールド分離文字(コンマ)が連続した場合は、空フィールドが存在するとみなして処理します。また、ダブルクォーテーション(")が2つ連続するだけのフィールドは、空フィールドとして処理します。
例1) 2番目のフィールドが空フィールドの場合(ダブルクォーテーションで囲まれていない)
field1,,field3
例2) 2番目のフィールドが空フィールドの場合(ダブルクォーテーションで囲まれている)
field1,"",field3
自己規定値で指定したフィールド分離文字(コンマ)、レコード分離文字、およびダブルクォーテーション(")は、フィールドのデータとして扱います。
例1) 自己規定値にフィールド分離文字(コンマ)を含む場合
自己規定値: self,char ↓ 実際のデータ: "self,char"
例2) 自己規定値にダブルクォーテーション(")を含む場合
自己規定値: self"char ↓ 実際のデータ: "self""char"
テキストファイルTSV形式の注意事項(各注意事項に関する例はテキストファイルCSV形式を参照してください)
ダブルクォーテーション(")で囲まれたフィールド中にレコード分離文字、およびフィールド分離文字(タブ)が含まれている場合、フィールドのデータとして扱います。なお、ダブルクォーテーション(")で囲まれているとは、先頭がダブルクォーテーション(")で始まるフィールドで、囲みの終わりを表すダブルクォーテーション(")までの範囲を指します。
ダブルクォーテーション(")で囲まれたフィールド内のダブルクォーテーション(")は2つ連続している必要があります。
フィールド分離文字(タブ)が連続した場合は、空フィールドが存在するとみなして処理します。また、ダブルクォーテーション(")が2つ連続するだけのフィールドは、空フィールドとして処理します。
自己規定値で指定したフィールド分離文字(タブ)、レコード分離文字、およびダブルクォーテーション(")は、フィールドのデータとして扱います。