2.12 キー位置のチェック緩和機能(SORT EEの機能)

ソート機能,マージ機能,または集約機能を使用する場合,可変長順編成ファイル,およびテキストファイルのキーの指定範囲が実レコード長を超えていてもエラーにしません。コマンドオプションの指定方法については,「5.5.11 キー位置のチェックオプション(POSNOCHKオプション)」を参照してください。

実レコード長を超えたキー部分には,NULL値を仮定してキーを比較します。

キー位置のチェック緩和機能キーの扱い
指定なしキーの範囲が実レコード長を超えている場合,exsortコマンドが異常終了する。
指定あり1. キー位置+キー長が実レコード長以下の場合実レコード内のキーが,ソートキー,マージキー,または集約キーとなる。
2. キー位置が実レコード長より小さく,キー位置+キー長が実レコード長より大きく最大レコード長以下の場合
 
3. キー位置が実レコード長より小さく,キー位置+キー長が最大レコード長より大きい場合
実レコード内のキーと,実レコードを超えている部分にNULL値を仮定したキーがソートキー,マージキー,または集約キーとなる。
4. キー位置が実レコード長より大きく,キー位置+キー長が最大レコード長以下の場合
 
5. キー位置が最大レコード長より小さく,キー位置+キー長が最大レコード長より大きい場合
 
6. キー位置が最大レコード長より大きい場合
NULL値を仮定したキーが,ソートキー,マージキー,または集約キーとなる。

(凡例)

レコード長の種類可変長順編成ファイルテキストファイル
最小レコード長COBOLでファイル作成時にユーザが指定した最小レコード長1
実レコード長実際の入力レコード長実際の入力レコード長(改行文字を除く)
最大レコード長COBOLでファイル作成時にユーザが指定した最大レコード長-inpfile,-splitinp,または-catinpパラメタのreclenオペランドで指定したレコード長(改行文字を除く)
注※
1.~6.は,次の図の1.~6.に対応しています。
[図データ]