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」となります。