ソートマージ


8.2.2 オペランドの意味

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

〈この項の構成〉

(1) マージオプション

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

表8‒8 マージオプションのパラメタ

パラメタ

意味

-k

マージするファイルが昇順または降順にソートされていない場合に,強制的にマージすることを指定する(強制マージ)。

-e

入力ファイルを排他モードでオープンする(ファイル排他)。

-i

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

-v

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

-q

出力データがキャッシュファイルに残っている場合,すべてのデータをファイル出力したあと,コマンドを終了する(キャッシュファイルの同期出力)。

-B※1

マージキーが数値項目の場合,big endian※2の数値として扱う。

「-q」を指定した場合,コマンドの実行時間が長くなることがあるため注意してください。

また,入力ファイルが索引ファイルの場合は,「-e」を指定した方が処理時間が短くなります。

注※1

Linuxの場合だけ有効なオプションです。また,マージキーが2進項目「-n」,「-m」,または内部浮動小数点項目「-f」の場合だけ有効です。

注※2

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

Linuxで「-B」を指定しなかった場合は,little endian(上位バイトを上位番地とする数値)として扱います。

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

マージオプションのパラメタの指定は,省略できます。省略した場合は,次のようになります。

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

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

入力ファイルのファイル編成を指定します。

複数の入力ファイルを指定する場合は,指定するファイルをすべて同じファイル編成にしてください。

入力ファイルのファイル編成の指定は,省略できません。必ず指定してください。入力ファイルのファイル編成のパラメタを次の表に示します。

表8‒9 入力ファイルのファイル編成のパラメタ(マージ機能)

パラメタ

意味

-S

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

-V

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

-R

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

-W

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

-I

固定長索引ファイルを指定する。

-X

可変長索引ファイルを指定する。

-A

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

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

出力ファイルのファイル編成を指定します。出力ファイルのレコードの形式(固定長,可変長またはテキスト)は,入力ファイルと同じにしなければなりません。

入力ファイルが順ファイル,相対ファイルまたはテキストファイルの場合,この指定は省略できます。指定を省略した場合は,入力ファイルと同じファイル編成が設定されます。入力ファイルが索引ファイルの場合は,順ファイルまたは相対ファイルのどちらかを必ず指定してください。

出力ファイルのファイル編成のパラメタを次の表に示します。

表8‒10 出力ファイルのファイル編成のパラメタ(マージ機能)

パラメタ

意味

:S

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

:V

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

:R

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

:W

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

:A

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

索引ファイルに出力する場合は,いったん順ファイルにデータを出力し,索引ファイルに変換します。索引ファイルに変換するには,ISAMのユティリティコマンドをパイプで連結します。索引ファイルに出力する場合のコマンドの指定例を次に示します。

(例)

[図データ]

(4) -Lレコード長

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

表8‒11 入力ファイル編成ごとのレコード長の指定方法(マージ機能)

入力ファイル編成

レコード長の指定方法

固定長順ファイル

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

可変長順ファイル

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

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

固定長相対ファイル

可変長相対ファイル

固定長索引ファイル

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

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

可変長索引ファイル

テキストファイル

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

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

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

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

マージ結果の出力先ファイルをファイル名で指定します。出力先ファイルは,入力ファイルとは異なるファイルでなければなりません。

-o出力ファイル名の指定は,省略できます。指定を省略した場合は,マージ結果を標準出力ファイルに出力します。

(6) キー属性

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

表8‒12 キー属性のパラメタ(マージ機能)

パラメタ

内容

-r

キーの降順でマージすることを指定する。

-j

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

-c

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

-n

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

-m

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

-p

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

-z

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

-x

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

-s

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

-t

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

-f

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

-g

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

注※

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

「-r」を指定しないときは,キーの昇順でマージされます。また,マージキーにするデータの属性を,「-j,-c,-n,-m,-p,-z,-x,-s,-t,-f,-g」のパラメタのどれかで必ず指定しなければなりません。降順でマージする場合は,「-rc」のようにつなげて指定します。なお,マージオプションに「-v」を指定した場合,キーの属性を必ず「-j」で指定してください。

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

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

なお,入力ファイルが索引ファイルの場合,マージの第1キーは索引ファイルの主キーまたは副キーでなければなりません。

また,キーのバイト長を4桁以内の数字「1〜4,096」で指定します。

この指定は,省略できません。必ず指定してください。

キーの指定範囲

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

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

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

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

(8) 入力ファイル名

マージの入力ファイルを指定します。同じファイルを2個以上指定できません。2個以上指定するときは,それぞれは互いに異なっていなければなりません。

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