5.7 -sumパラメタ
- 意味
-
集約項目を指定します。
- 形式
-sum [ field-definition ]
- 説明
-
-
-sumパラメタを指定する場合は,-keyパラメタを必ず指定してください。
-
-function copyと組み合わせて指定する場合,入力ファイルはあらかじめ集約キーでソートしておく必要があります。ソートしていない場合は,集約の結果は保証されません。
-
-function copyと組み合わせる場合,入力ファイルは一つだけ指定してください。
-
集約項目同士の範囲は重なってはいけません。
-
集約項目の範囲は,キーの範囲と重なってはいけません。集約項目の範囲とキーの範囲と重なった場合は,「KBLS1409-E 集約項目とキーが重なっています。」というメッセージを出力して異常終了します。ただし,キー属性「u」または「v」を指定した場合,キーの範囲と集約項目の範囲が重なっていてもエラーにはなりません。重なった範囲は集約結果で更新されて正常終了します。
-
環境ファイル「EXS_SUMNUMMAX」の「最大個数の倍数」を指定していない場合,指定できる集約項目の個数は1〜128個です。集約項目の最大個数は「128×n個」の単位で,1,280個(128×10)まで拡張できます。129個以上のキーを指定したい場合は,環境ファイル「EXS_SUMNUMMAX」の「最大個数の倍数」に,「128×n個」のnの値を指定してください。
-
環境ファイル「EXS_SUMNUMMAX」の「合計長の上限の倍数」を指定していない場合,指定できる集約項目の合計長は4,096バイトです。集約項目の合計長は「4,096×mバイト」の単位で,65,536バイト(4,096×16)まで拡張できます。4,097バイト以上の合計長を指定したい場合は,環境ファイル「EXS_SUMNUMMAX」の「合計長の上限の倍数」に,「4,096×mバイト」のm値を指定してください。
-
集約項目を指定しない場合(集約項目の個数が0個),同じキーを持つ連続したレコードがあるときは,最初に配置されているレコードだけを抽出します。これを無条件レコード抽出機能といいます。無条件レコード抽出機能を使用した例を次の図に示します。
図5‒4 無条件レコード抽出機能の使用例
-
- 指定値
-
field-definitionの形式を次に示します。
- field-definition形式1
field-attribute+pos−len [△field-attribute+pos−len … ]
-
field-attribute+pos−lenは必ず続けて指定してください。それぞれの値の間に空白やタブを指定しないでください。
-
field-attribute+pos−lenを複数指定する場合は,1個以上の空白またはタブで区切って指定します。
-
- field-definition形式2
field-name [△field-name … ]
-
field-nameを複数指定する場合は,1個以上の空白またはタブで区切って指定します。
field-definitionに指定するそれぞれの値について次に示します。
- field-attribute
-
集約項目の属性を指定します。
field-attributeに指定する値
意味
n
集約項目が符号付き固定小数点2進数であることを指定します。※
m
集約項目が符号なし2進数であることを指定します。※
p
集約項目が内部10進数であることを指定します。
z
集約項目が外部10進数であることを指定します。
x
集約項目が左符号付き外部10進数であることを指定します。
s
集約項目が右分離符号付き外部10進数であることを指定します。
t
集約項目が左分離符号付き外部10進数であることを指定します。
- +pos
-
-
集約項目の開始バイト位置を数字で指定します。指定できる桁数は,レコード長の上限値をバイト単位に変換した値の桁数以内です。
-
-locatajstパラメタを指定したかどうかによって,レコード先頭の解釈が異なります。
-
テキストファイルに指定できる開始バイト位置(pos)の範囲は,UNIXの64ビット版(環境変数「EXSORT64MAXRECLEN」の指定がない,または無効の場合),UNIXの32ビット版,およびWindows版の場合,入力データのエンコード種別や改行文字の長さによって異なります。UNIXの64ビット版で環境変数「EXSORT64MAXRECLEN」の指定がある場合,入力データのエンコード種別によって異なりますが,改行文字の長さによって異なることはありません。
開始バイト位置(pos)に指定できる値の範囲を次の表に示します。
表5‒11 posに指定できる値の範囲(Windows版,UNIXの32ビット版,UNIXの64ビット版で環境変数「EXSORT64MAXRECLEN」の指定がない,または指定が無効の場合) ファイル編成
-locatajstパラメタ
指定あり
指定なし
固定長順編成ファイル
1〜65,535
0〜65,534
可変長順編成ファイル
5〜65,539※1
0〜65,534
テキストファイル※2
改行文字
「LF」
ASCII
SJIS
EUC-JP
EUC-HJ
UTF-8
1〜65,535
0〜65,534
UCS-2LE
UCS-2BE
UTF-16LE
UTF-16BE
1〜65,533
(2の倍数+1※3)
0〜65,532
(2の倍数※3)
UCS-4LE
UCS-4BE
UTF-32LE
UTF-32BE
1〜65,529
(4の倍数+1※4)
0〜65,528
(4の倍数※4)
改行文字
「CRLF」
ASCII
SJIS
EUC-JP
EUC-HJ
UTF-8
1〜65,534
0〜65,533
UCS-2LE
UCS-2BE
UTF-16LE
UTF-16BE
1〜65,531
(2の倍数+1※3)
0〜65,530
(2の倍数※3)
UCS-4LE
UCS-4BE
UTF-32LE
UTF-32BE
1〜65,525
(4の倍数+1※4)
0〜65,524
(4の倍数※4)
表5‒12 posに指定できる値の範囲(UNIXの64ビット版で環境変数「EXSORT64MAXRECLEN」の指定がある場合) ファイル編成
-locatajstパラメタ
指定あり
指定なし
固定長順編成ファイル
1〜レコード長の上限値※1
0〜レコード長の上限値※1−1
可変長順編成ファイル
5〜レコード長の上限値※1+4※3
0〜レコード長の上限値※1−1
テキストファイル※2
ASCII
SJIS
EUC-JP
EUC-HJ
UTF-8
1〜レコード長の上限値※1
0〜レコード長の上限値※1−1
UCS-2LE
UCS-2BE
UTF-16LE
UTF-16BE
1〜レコード長の上限値※1−1(2の倍数+1)※4
0〜レコード長の上限値※1−2(2の倍数)※4
UCS-4LE
UCS-4BE
UTF-32LE
UTF-32BE
1〜レコード長の上限値※1−3(4の倍数+1)※5
0〜レコード長の上限値※1−4(4の倍数)※5
-
- −len
-
集約項目の長さを次の表に示す範囲で指定します。
field-attributeの値
指定できる長さ(単位)
m,n
2,4,または8(バイト)
p
1〜10(バイト)
z,x※
1〜18(桁)
s,t※
2〜19(桁)
- field-name
-
集約項目を入力ファイルパラメタのfieldオペランドで定義したフィールド名で指定します。
-
field-attributeと同じ属性を定義したフィールド名だけ指定できます。
-
ファイル編成が可変長順編成ファイルの場合,フィールド名は指定できません。
-
-
- 集約項目の範囲
-
集約項目は,次の表に示す範囲内で指定してください。
入力ファイルの種別
集約項目の範囲
固定長ファイル
レコード長
可変長ファイル
最小レコード長
テキストファイル
最小レコード長
- 集約結果の範囲
-
2進数項目の集約結果の範囲を次の表に示します。
表5‒13 固定小数点2進数(n)の範囲 長さ
OVFLWオプション
指定なし
指定あり
2
−32,768〜+32,767
−9,999〜+9,999
4
−2,147,483,648〜+2,147,483,647
−999,999,999〜+999,999,999
8
−9,223,372,036,854,775,808〜
+9,223,372,036,854,775,807
−999,999,999,999,999,999〜
+999,999,999,999,999,999
表5‒14 符号なし2進数(m)の範囲 長さ
OVFLWオプション
指定なし
指定あり
2
0〜32,767
0〜9,999
4
0〜2,147,483,647
0〜999,999,999
8
0〜9,223,372,036,854,775,807
0〜999,999,999,999,999,999
- 集約結果がオーバーフローした場合
-
集約結果がオーバーフローした場合は,それまで集約した結果を出力したあと,処理中のレコードから新しく集約します。集約結果がオーバーフローした場合の例を次の図に示します。
図5‒5 集約結果がオーバーフローした場合の例 集約結果がオーバーフローした時にexsortコマンドを異常終了させたい場合は,コマンドオプション「OVFERR」を指定してください。最初のオーバーフローを検出した時点で,KBLS1412-Eエラーメッセージを出力して異常終了します。
OVFERRオプションについては,「5.5.20集約結果オーバーフロー検知オプション(OVFERRオプション)」を参照してください。
- 注意事項
-
-
レコード結合機能(-joindata,-joininp,-joinoutパラメタ)と同時に指定できません。同時に指定した場合KBLS1106-Eエラーとなります。
-
- 関連パラメタ・オプション
-
-
-locatajstパラメタ
-
-functionパラメタ
-
-keyパラメタ
-
-cmdoptパラメタ OVFERRオプション
-
-inpfileパラメタ codetypeオペランド
-