ソートマージ

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

9.2.2 オペランドの意味

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

<この項の構成>
(1) 選択オプション
(2) 入力ファイルのファイル編成
(3) 出力ファイルのファイル編成
(4) -Lレコード長
(5) -o出力ファイル名
(6) -sl"選択条件式"
(7) 入力ファイル名

(1) 選択オプション

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

表9-10 選択オプションのパラメタ

パラメタ 意味
-e 入力ファイルを排他モードでオープンする(ファイル排他)。
-i 出力ファイル名と同じ名前のファイルがすでにある場合,そのファイルの内容が書き換えられるのを防ぐ(既存ファイルの書き換え防止)。
-v比較レベル EBCDIKコードの体系に従ってキーを比較する。
  • 選択条件式の比較項目がJIS8単位コードの英数字の場合
    比較レベルに1を指定するか,または比較レベルを指定しない。
  • 選択条件式の比較項目がEBCDIKコードの英数字の場合
    比較レベルに2を指定する。
-u 選択条件を満たさないレコードだけを入力する。
-q 出力データがキャッシュファイルに残っている場合,すべてのデータをファイル出力したあと,コマンドを終了する(キャッシュファイルの同期出力)。
-B※1 比較項目が数値項目の場合,big endian※2の数値として扱う。

「-q」を指定した場合,コマンドの実行時間が長くなることがあるため注意してください。
また,入力ファイルが索引ファイルの場合は,「-e」を指定した方が処理時間が短くなります。

注※1
Linuxの場合だけ有効なオプションです。また,比較項目が2進項目「-n」または「-m」の場合だけ有効です。

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

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

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

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

(a) -vパラメタについて

-vパラメタに指定した値による比較処理については,次のとおりです。

JIS8単位コード体系とEBCDIKコード体系の変換表は,「付録A JIS8単位コード体系とEBCDIKコード体系の変換表」を参照してください。

(b) 「-v1」と「-v2」の違い

「-v1」の場合は,入力レコードの比較項目と選択条件式の文字条件値どちらもJIS8単位コードと見なし,EBCDIKコード体系に従って比較します。「-v2」の場合は,入力レコードの比較項目と選択条件式の文字条件値どちらもEBCDIKコードと見なし,EBCDIKコード体系に従って比較します。

実行例
[図データ]
  • 「-v1」,および「-v2」指定なし

    [図データ]

  • 「-v1」指定あり

    [図データ]

  • 「-v2」指定あり

    [図データ]

コマンドの実行結果を次に示します。

[図データ]

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

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

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

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

表9-11 入力ファイルのファイル編成のパラメタ(選択機能)

パラメタ 意味
-S 固定長順ファイルを指定する。
-V 可変長順ファイルを指定する。
-R 固定長相対ファイルを指定する。
-W 可変長相対ファイルを指定する。
-I 固定長索引ファイルを指定する。
-X 可変長索引ファイルを指定する。
-A テキストファイルを指定する。

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

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

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

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

表9-12 出力ファイルのファイル編成のパラメタ(選択機能)

パラメタ 意味
:S 固定長順ファイルを指定する。
:V 可変長順ファイルを指定する。
:R 固定長相対ファイルを指定する。
:W 可変長相対ファイルを指定する。
:A テキストファイルを指定する。

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

[図データ]

(4) -Lレコード長

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

表9-13 入力ファイル編成ごとのレコード長の指定方法(選択機能)

入力ファイル編成 レコード長の指定方法
固定長順ファイル ファイルのレコード長を「1〜65,535」バイトの範囲で指定します。
可変長順ファイル 指定は不要です。指定しても無視されます。
ただし,入力できるレコード長の範囲は,1〜65,535バイトです。
固定長相対ファイル
可変長相対ファイル
固定長索引ファイル 指定は不要です。指定しても無視されます。
ただし,入力できるレコード長の範囲は,1〜65,503バイトです。
可変長索引ファイル
テキストファイル ファイルの最大レコード長を「1〜65,535」バイトの範囲で指定します。レコード長には,改行文字「X'0A'」は含みません。
この指定は省略できます。指定を省略した場合は,「65535」バイトが設定されます。
なお,レコード長を指定した方が,ソート時間が短くなります。

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

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

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

(6) -sl"選択条件式"

レコードを選択するための選択条件式を指定します。指定できる条件式の個数は1から32個です。

選択条件式の形式を次の図に示します。

図9-6 選択条件式の形式

[図データ]

(a) 比較項目の属性

比較項目に関する属性を指定します。比較項目の属性のパラメタを次の表に示します。

表9-14 比較項目の属性のパラメタ

パラメタ 意味
-j 比較項目が文字(JIS8単位コード)であることを指定する。
-c 比較項目が文字であることを指定する。
-n 比較項目が符号付き固定小数点2進数であることを指定する。
-m 比較項目が符号なし2進数であることを指定する。
-p 比較項目が内部10進数であることを指定する。
-z 比較項目が外部10進数であることを指定する。
-x 比較項目が左符号付き外部10進数であることを指定する。
-s 比較項目が右分離符号付き外部10進数であることを指定する。
-t 比較項目が左分離符号付き外部10進数であることを指定する。
-g 比較項目が日付(英数字)であることを指定する。

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

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

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

また,比較項目のバイト長を4桁以内の数字「1〜4,096」で指定します。この指定は,省略できません。必ず指定してください。

比較項目の指定範囲
比較項目は,次に示す範囲で指定してください。
  • 入力ファイルが固定長ファイルのとき,比較項目は,レコード長の範囲
  • 入力ファイルが可変長ファイルのとき,比較項目は,最小レコード長の範囲
  • 入力ファイルがテキストファイルのとき,比較項目は,最小レコード長の範囲
(c) 比較演算子

比較項目で指定した値と入力レコードの値を比較,選択する方法を指定します。

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

比較演算子のパラメタを次の表に示します。

表9-15 比較演算子のパラメタ

比較演算子 意味
= 条件値と等しい値の入力レコードを選択することを指定する。
!= 条件値と異なる値の入力レコードを選択することを指定する。
> 条件値より大きい値の入力レコードを選択することを指定する。
>= 条件値より大きいかまたは等しい値の入力レコードを選択することを指定する。
< 条件値より小さい値の入力レコードを選択することを指定する。
<= 条件値より小さいかまたは等しい値の入力レコードを選択することを指定する。
(d) 条件値

比較の条件となる値を「C'文字条件値'」,「N'数値条件値'」または「D'日付条件値'」の形で指定します。

「C'文字条件値'」は比較項目が文字項目の場合,「N'数値条件値'」は比較項目が数値項目の場合に指定できます。また,「D'日付条件値'」は比較項目が日付項目の場合に指定できます。

指定できる条件値の長さを次の表に示します。

表9-16 指定できる条件値の長さ

項目 最小値 最大値 備考
文字条件値 1 4,096
数値条件値 1 19 符号なし数値は18
日付条件値 2 8

単位:バイト

(凡例)
−:なし

注※
日付条件値として指定できる値を次に示します。
・先頭の1文字はスペースまたは「0〜9」の文字列
・2文字目が「0〜9」の文字列
・1文字のスペースを指定した場合「00」を設定
・1文字の「0〜9」を指定した場合,先頭の1文字は「0」を設定

条件値の扱い
条件値の長さが,指定した比較項目より短い場合,文字条件値のときは,下位にスペースが設定されます。数値条件値のときは,上位に0が設定されます。例を次に示します。

(例)
  • 文字条件値のとき
    -c +0-4 : C'ab'→ ab△△
  • 数値条件値のとき
    -z +0-4 : N'12'→ 0012
  • 日付条件値のとき
    -g +0-4 : D'12'→ 12△△
(凡例)   :比較対象となる部分
      △:スペース(空白)を示す。
また,条件値の長さが指定した比較項目より長い場合,文字条件値のときは,下位の桁あふれ部分が対象外になります。数値条件値のときは,上位の桁あふれ部分が対象外になります。例を次に示します。

(例)
  • 文字条件値のとき
    -c +0-4 : C'abcdef'→ abcd ef
  • 数値条件値のとき
    -z +0-4 : N'123456'→ 12 3456
  • 日付条件値のとき
    -g +0 -4: D'10/03'→ 10/03
(凡例)   :比較対象となる部分
      △:スペース(空白)を示す。
(e) 論理演算子

複数の選択条件式を指定する場合,論理演算子「and」または「or」を指定します。

選択条件中に「and」と「or」が混在した場合は,「and」を判定後,「or」を判定します。「and」と「or」が混在した場合の処理の例を次に示します。

(例)
比較項目A>30△and△比較項目B=10△or△比較項目A<=10△and△比較項目B=10
(凡例) △:スペース(空白)を示す。

この場合,次のうちどちらかの条件を満たしたレコードが選択されます。

(7) 入力ファイル名

選択の対象となる入力ファイルを指定します。同じファイルを2個以上指定できません。2個以上指定するときは,すべて同じファイル編成とし,それぞれのファイル名は互いに異なっていなければなりません。

また,出力ファイルの指定と同じファイルの指定はできません。

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