ソートマージ


5.5.9 10進キーのチェックオプション(KEYNOCHKオプション)

キーまたは比較項目の属性が外部10進数(CSVファイルの場合は固定小数点),または内部10進数の場合,入力データの形式が不正であってもエラーにしません。

このオプションを指定しない場合,環境変数「EXSORTMGTOPT(64ビット版は「EXSORT64MGTOPT」)」にKEY_INVALID_NOCHKオプションが指定されていればKEYNOCHK指定ありと同じ扱いとなります。

CSVFRMCHKオプションと同時に指定できません。同時に指定した場合はKBLS1120-Eエラーとなります。

ソート,マージ,選択,および集約機能でキーまたは比較項目が不正な場合の例を次に示します。

(a) ソート機能でキーが不正な場合

売上数量をキーにしてソートする例を示します。

[図データ]

(b) マージ機能でキーが不正な場合

売上数量をキーにしてマージする例を示します。

[図データ]

(c) 選択機能で比較項目が不正な場合

売上数量を比較項目として,売り上げ数量が2,000以上のレコードを選択する例を示します。

[図データ]

(d) 集約機能でキーが不正な場合

品番をキーに,売上数量を集約項目にして集約する例を示します。

[図データ]

注意事項

キー属性,または比較項目属性に,内部10進数「p」,外部10進数「z」,左符号外部10進数「x」,左分離符号外部10進数「s」,右分離符号外部10進数「t」,またはCSVファイルの固定小数点数「z」を指定している場合だけ,このオプションは有効です。

KEYNOCHK

不正データの扱い※1

指定なし

KBLS1211-EまたはKBLS1320-Eメッセージを表示し,exsortコマンドが異常終了する。

指定あり

内部10進数

  • 数値部が0〜9以外の場合,JIS8単位コード体系に従って比較する。

  • 符号部が(C)16(正),(D)16(負),(F)16(絶対値)以外の場合は,内部10進数を正値として扱う。

外部10進数

左符号付き外部10進数(x)

  • ゾーン部は,比較対象外※2

  • 数値部が0〜9以外の場合,JIS8単位コード体系に従って比較する。

  • 符号部が3,7以外の場合は,外部10進数を正値として扱う※3

左分離符号付き外部10進数(s)

右分離符号付き外部10進数(t)

  • ゾーン部に相当する部分は比較対象外。

  • 数値部に相当する部分が0〜9以外の場合,JIS8単位コード体系に従って比較をする。

  • 分離符号に相当する部分は無視され,常に正値として扱う。

固定小数点(CSV数値データ)

  • データ中に引用符,符号,通貨記号,空白,小数点,コンマが含まれている場合は,これらの文字を除外し,残った文字を外部10進数として扱う。

  • ゾーン部に相当する部分は比較対象外。

  • 符号部に相当する部分は無視され,常に正値として扱う。

  • 数値部に相当する部分が0〜9以外の場合,JIS8単位コード体系に従って比較をする。

注※1

キー,または比較項目のデータ形式が,次の表のどれかに該当する場合,不正データと見なされます。

属性

不正データの条件

備考

内部10進数(p)

  • 数値部が0〜9以外の値

  • 符号部がC,D,F以外の値

「内部10進数符号オプション」で符号の範囲を変更できます。

オプションを指定した場合の不正データ形式については,「14.1.1(30) EXSORTPACKSIGNTYPE」および「14.1.2(30) EXSORT64PACKSIGNTYPE」を参照してください。

外部10進数(z)

左符号付き外部10進数(x)

  • 数値部が0〜9以外の値

  • ゾーン部が3以外の値

  • 符号部が3,7以外の値

「外部10進数データ形式オプション」でデータ形式を変更できます。

オプションを指定した場合の不正データ形式については,「14.1.1(31) EXSORTUNPACKDATATYPE」および「14.1.2(31) EXSORT64UNPACKDATATYPE」を参照してください。

右分離符号付き外部10進数(s)

左分離符号付き外部10進数(t)

  • 数字が0〜9(0x30〜0x39)以外の値

  • 符号が+(0x2B),−(0x2D)以外の値

「外部10進数データ形式オプション」でデータ形式を変更できます。オプションを指定した場合の不正データ形式については,「14.1.1(31) EXSORTUNPACKDATATYPE」および「14.1.2(31) EXSORT64UNPACKDATATYPE」を参照してください。

固定小数点(z)

(CSV数値データ)

  • 引用符,数字,符号,通貨記号,空白,小数点,コンマ以外の文字を含む場合

  • データ中に含まれる引用符,符号,通貨記号,空白,小数点,コンマの位置が不正な場合

除外文字の位置規則については,「付録B CSVファイルのデータの扱い(SORT EEの機能)」を参照してください。

注※2

ソートおよびマージ機能において,ゾーン部はキーの大小比較対象外となるため,数値部と符号部が同じレコードの場合,ソートおよびマージの結果を保証しません。例を次に示します。

[図データ]

ソート前後でレコードの並びは変わりません。

注※3

ソートおよびマージ機能において,数値部が同じレコードの場合,ソートおよびマージの結果を保証しません。例を次に示します。

[図データ]

ソート前後でレコードの並びは変わりません。

集約機能において,キーが外部10進数で,同一キーの先頭レコードの符号部に3,7以外が設定されている場合,出力ファイルに出力されるレコードの符号部は,同一キーの先頭レコードの符号部となります。例を次に示します。

[図データ]

キー「9000」を出力ファイルに書く場合,符号部が「2」となります。