ソートマージ


10.1.2 オペランドの意味

オペランドには,必ず指定するオペランドと任意に指定できるオペランドの2種類があります。

〈この項の構成〉

(1) 集約オプション

集約処理で使用する機能上のオプションを指定します。集約オプションのパラメタを次の表に示します。

表10‒1 集約オプションのパラメタ

パラメタ

意味

/i

出力ファイルと同じ名前のファイルがすでにある場合,そのファイルの内容が書き換えられるのを防ぐ(既存ファイルの書き換え防止)。

/v

EBCDIKコードの体系に従ってキーを比較する。

/b※1

集約項目が数値項目の場合,big endian※2の数値として扱う。

/h

集約項目が2進数の場合,10進数の桁数でオーバーフロー判定をする。

/if

集約項目に内部10進数を指定した場合,演算符号が(F)16(絶対値)である項目の集約結果を同じ演算符号(絶対値)にする。

このパラメタを指定しない場合,集約した結果の演算符号は(C)16(正)になる。

注※1

集約キーが2進項目「/n」「/m」,または内部浮動小数点項目「/f」の場合だけ有効となる。

注※2

big endianとは,上位バイトを下位番地とする数値のことです。

/bパラメタを指定しなかった場合は,little endian(上位バイトを上位番地とする数値)として扱います。

複数のオプションを指定する場合は,次に示すどれかの方法で指定します。

また,この指定は省略できます。省略した場合は,次のようになります。

なお,集約オプションを指定する場合は,次の点に注意してください。

「/h」の指定による,集約結果の範囲の違いを次の表に示します。

「/h」の指定は,集約項目が2進項目「/n」,「/m」の場合だけ有効となります。集約結果がこの範囲を超えると,オーバーフローとなります。

表10‒2 集約結果の範囲の違い

集約項目のバイト長

集約結果の値の範囲

「/h」指定なし

「/h」指定あり

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

集約結果がオーバーフローした場合

集約結果がオーバーフローした場合は,それまで集約した結果を出力したあと,処理中のレコードから新規に集約します。

集約結果がオーバーフローした場合の例を次の図に示します。

図10‒2 集約結果がオーバーフローした場合の例

[図データ]

(2) /g入力ファイルのファイル編成

入力ファイルのファイル編成を「/g+オペランド」の形式で指定します。

また,この指定は,省略できません。入力ファイルのファイル編成のオペランドを次の表に示します。

表10‒3 入力ファイルのファイル編成のオペランド(集約機能)

オペランド

意味

s

固定長順編成ファイルを指定する。

v

可変長順編成ファイルを指定する。

r

固定長相対ファイルを指定する。

w

可変長相対ファイルを指定する。

a

テキストファイルを指定する。

(3) 出力ファイルのファイル編成

出力ファイルのファイル編成のオペランドを,コロンで区切って指定します。出力ファイルのレコードの形式(固定長,可変長またはテキスト)は,入力ファイルと同じにしてください。

この指定は省略できます。指定を省略した場合は,入力ファイルと同じファイル編成が設定されます。

出力ファイルのファイル編成のオペランドを次の表に示します。

表10‒4 出力ファイルのファイル編成のオペランド(集約機能)

オペランド

意味

s

固定長順編成ファイルを指定する。

v

可変長順編成ファイルを指定する。

r

固定長相対ファイルを指定する。

w

可変長相対ファイルを指定する。

a

テキストファイルを指定する。

(4) /lレコード長

入力ファイルのファイル編成ごとのレコード長の指定方法を次の表に示します。

表10‒5 入力ファイルのファイル編成ごとのレコード長の指定方法(集約機能)

入力ファイル編成

レコード長の指定方法

固定長順編成ファイル

ファイルのレコード長を「1〜65,535」バイトの範囲で指定します。

可変長順編成ファイル

指定は不要です。指定しても無視されます。

ただし,入力できるレコード長の範囲は,1〜65,535バイトです。

固定長相対ファイル

可変長相対ファイル

テキストファイル

ファイルの最大レコード長を「1〜65,535」バイトの範囲で指定します。レコード長には,改行文字「X'0A'」は含みません。

省略できます。省略した場合「65,535」バイトが設定されます。

レコード長を指定した方がソート時間が短くなります。

(5) /o出力ファイル名

集約結果の出力先ファイルをファイル名で指定します。

この指定は,省略できます。指定を省略した場合は,集約結果を標準出力ファイルに出力します。

(6) キー属性

集約キーのキー属性を指定します。キー属性のパラメタを次の表に示します。

表10‒6 キー属性のパラメタ(集約機能)

パラメタ

意味

/c

キーが文字であることを指定する。

/j

キーが文字(JIS8単位コード)であることを指定する。

/n

キーが符号付き固定小数点2進数であることを指定する。

/m

キーが符号なし2進数であることを指定する。

/p

キーが内部10進数であることを指定する。

/z

キーが外部10進数であることを指定する。

/x

キーが左符号付き外部10進数であることを指定する。

/s

キーが右分離符号付き外部10進数であることを指定する。

/t

キーが左分離符号付き外部10進数であることを指定する。

/f

キーが内部浮動小数点であることを指定する。

/e

キーが日付(英数字)であることを指定する。

注※

ASCIIコード(0x00〜0x7F)を含む,JIS8単位コード(0x00〜0xFF)を意味します。入力データに日本語などのマルチバイト文字が含まれている場合,マルチバイト文字として扱わず,シングルバイト文字として扱います。EBCDIKコードの体系に従ってキー・項目を比較する「-vオプション(Windowsは/vオプション)」を使用できます。

(7) +キー位置-キー長

キーの開始バイト位置を5桁以内の数字で指定します。開始バイト位置はレコードの先頭からのバイト位置(先頭を0とする)とします。開始バイト位置に指定できる値の範囲は,「0〜レコード長-1」です。

また,キーのバイト長を「1〜4,096」の範囲で指定します。

この指定は,省略できません。

集約キーの指定範囲

集約キーは,次に示す範囲で指定してください。

  • 入力ファイルが固定長ファイルのとき,キーは,レコード長の範囲

  • 入力ファイルが可変長ファイルおよびテキストファイルのとき,キーは,最小レコード長の範囲

(8) /a

無条件レコード抽出機能を使用する場合は,「/a」だけを指定します。また,集約項目は,集約項目の属性と「+項目位置-項目長」で指定します。

(a) 集約項目の属性

集約項目の属性を指定します。集約項目の属性のオペランドを次の表に示します。

表10‒7 集約項目の属性のオペランド

オペランド

意味

n

集約項目が符号付き固定小数点2進数であることを指定する。

m

集約項目が符号なし2進数であることを指定する。

p

集約項目が内部10進数であることを指定する。

z

集約項目が外部10進数であることを指定する。

x

集約項目が左符号付き外部10進数であることを指定する。

s

集約項目が右分離符号付き外部10進数であることを指定する。

t

集約項目が左分離符号付き外部10進数であることを指定する。

(b) +項目位置-項目長

集約項目の開始バイト位置を5桁以内の数字で指定します。開始バイト位置はレコードの先頭からのバイト位置(先頭を0とする)とします。開始バイト位置に指定できる値の範囲は,「0〜レコード長-1」です。

また,集約項目のバイト長を「1〜19」の範囲で指定します。

この指定は,省略できません。

集約項目を複数指定する場合は,集約項目の属性と「+項目位置-項目長」をひとまとめにして指定してください。

集約項目の指定範囲

集約項目は,次の範囲で指定してください。

  • 入力ファイルが固定長ファイルのとき,集約項目は,レコード長の範囲

  • 入力ファイルが可変長ファイルおよびテキストファイルのとき,集約項目は,最小レコード長の範囲

集約項目を複数個指定する場合は,集約項目を重複して指定しないでください。

また,集約項目は,集約キーと重複して指定しないでください。

(9) 入力ファイル名

集約機能の入力ファイルを指定します。出力ファイルの指定と同じファイルの指定はできません。

入力ファイルが順ファイルまたは相対ファイルの場合,この指定は,省略できます。省略した場合は,入力ファイルに標準入力ファイルが設定されます。