ソートマージ


5.8.18 fieldオペランド

意味

-inpfileパラメタのfileorgオペランドで指定したファイル編成が固定長順,またはテキストの場合,入力レコードのフィールド情報を指定します。

  • 1つのオペランドで,1つのフィールド情報を定義します。

  • 複数のフィールドで,重なるフィールド位置を指定できます。

  • ファイル編成が可変長順編成ファイルの場合,fieldオペランドは指定できません。指定した場合,KBLS1621-Eエラーになります。

  • 定義したフィールドは,次の表に示す項目やキーとして指定できます。

    パラメタ,オペランド

    内容

    -joindata

    結合条件項目

    -key

    キー項目

    -sum

    集約項目

    include,omit

    比較項目

    format

    フォーマット項目

形式
field=field-definition
指定値

field-definitionの形式を次に示します。

field-definition形式1
field-name:[r]field-attributeposlen
  • 文字,2進数,内部10進数,および日付データのフィールドを定義します。

  • field-name: [r]field-attributeposlenは必ず続けて指定してください。それぞれの値の間に空白やタブを指定しないでください。

  • field-attributeには,属性コード「j,c,q,w,u,v,d,n,m,f,p,g」が指定できます。

field-definition形式2
field-name:[r]field-attributeposp[,s]
  • 外部10進数データのフィールドを定義します。

  • [r]field-attributeposp[,s]は必ず続けて指定してください。それぞれの値の間に空白やタブを指定しないでください。

  • field-attributeには,属性コード「z,x,s,t」が指定できます。

field-definition形式3
field-name:[r]field-attributeposmaskbit
  • 符号なし2進数のフィールドを定義します。

  • field-name: [r]field-attributeposmaskbitは必ず続けて指定してください。それぞれの値の間に空白やタブを指定しないでください。

  • field-attributeには,属性コード「a,b」が指定できます。

field-definitionに指定するそれぞれの値について次に示します。

field-name

フィールド名を指定します。

フィールド名は,先頭が半角大文字の英字(A〜Z)ではじまる2文字から32文字以内の半角英数字

(A〜Z,a〜z,0〜9)とアンダーバー( _ )を指定します。

入力ファイルパラメタ内で,指定したフィールド名が重複してはいけません。

[r]

キーのソート順序を指定します。

rオプション

意味

指定なし

キーの昇順でソートまたはマージします。

指定あり

キーの降順でソートまたはマージします。

  • field-nameをkeyパラメタに指定した場合に有効となります。

  • 降順でソートまたはマージする場合は,フィールドの属性を「rc」のようにつなげて指定します。

  • 昇順か降順かは,フィールドごとに指定できます。フィールドを指定した複数のキーを指定して,昇順と降順を混在させたソートまたはマージもできます。

field-attribute

フィールドの属性を指定します。

指定できる属性は,keyパラメタに指定するkey-attributeと同じです。詳細は,「5.6 -keyパラメタ」の「key-attribute」を参照してください。

pos

フィールドの位置を数字で指定します。

指定できる位置の範囲は,keyパラメタに指定する+posと同じです。詳細は,「5.6 -keyパラメタ」の「+pos」を参照してください。

len

フィールドの長さを次の表に示す範囲で指定します。

field-attributeの値

指定できる長さ(単位)

j,c,q,w※1

  • 入力データのエンコードが「ASCII」,「SJIS」,「EUC-JP」,「EUC-HJ」または「UTF-8」の場合

    1〜4,096(バイト)

  • 入力データのエンコードが「UCS-2LE」,「UCS-2BE」,「UTF-16LE」または「UTF-16BE」の場合※2

    2〜8,192(バイト)

  • 入力データのエンコードが「UCS-4LE」,「UCS-4BE」,「UTF-32LE」または「UTF-32BE」の場合※3

    4〜16,384(バイト)

u,v

1〜4,096(文字数)※4

d

1〜256(桁)※5

m,n

2,4,または8(バイト)

f

4または8(バイト)

p

1〜10(バイト)

g

2〜8(桁)※6

注※1

入力データのエンコードの種別によって,マルチバイト文字の長さは異なります。詳細は「付録I.2 文字列データの扱い」を参照してください。

注※2

入力データのエンコードに「UCS-2LE」,「UCS-2BE」,「UTF-16LE」,「UTF-16BE」または「UNICODE(入力ファイルのUnicodeシグニチャ(BOM)の形式がUTF-16LEまたはUTF-16BE)」を指定した場合,長さには「2の倍数」を指定してください。2の倍数以外を指定すると,KBLS1207-Eメッセージが表示されてエラーになります。

注※3

入力データのエンコードに「UCS-4LE」,「UCS-4BE」,「UTF-32LE」,「UTF-32BE」または「UNICODE(入力ファイルのUnicodeシグニチャ(BOM)の形式がUTF-32LEまたはUTF-32BE)」を指定した場合,長さには「4の倍数」を指定してください。4の倍数以外を指定すると,KBLS1207-Eメッセージが表示されてエラーになります。

注※4

「バイト長」ではなく「文字数」を指定してください。UTF-16のサロゲートペア文字は1文字として扱います。また,UnicodeのVS(Variation Selector,異体字セレクタ)は文字数に数えません。マルチバイト文字の扱いについては,「付録I.2(6) IVS対応」を参照してください。

注※5

「バイト長」ではなく数値の「桁数」を指定してください。UCS-2,UCS-4,UTF-16およびUTF-32の数値データの扱いについては,「付録I.3 数値データの扱い」を参照してください。

注※6

「バイト長」ではなく日付の「桁数」を指定してください。UCS-2,UCS-4,UTF-16およびUTF-32の日付データの扱いについては,「付録I.4 日付データの扱い」を参照してください。

p[,s]

field-attributeに外部10進数を指定した場合に,数値データの有効桁を10進数で指定します。

  • p(precision:精度)は,数値データの総桁数を表します。pからsを引いた桁が整数部の有効桁となります。

  • pに指定できる桁の範囲は,属性が「z,x」の場合は1〜18桁,属性が「s,t」の場合は 2〜19桁です。

  • s(scale:位)は,数値データの小数部(小数点以下)の有効桁を表します。

  • sに指定できる桁の範囲は,0〜p桁です(p以下の桁を指定 0≦s≦p)。p=sを指定した場合は,整数部の有効桁は0(整数部なし)となります。

  • sを省略した場合は,小数部の有効桁は0(小数部なし)を仮定します。データ中に小数点を含まない場合は,sの指定は必要ありません。

maskbit

属性コード「a」または「b」を指定した場合,マスクビットを16進数で指定します。

指定できるマスクビットの桁は,keyパラメタに指定する-lenと同じです。詳細は,「5.6 -keyパラメタ」の「+len」を参照してください。