ソートマージ

[目次][用語][索引][前へ][次へ]

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」を参照してください。