5.21.3 nosplitdataオペランド
- 意味
-
非分割データを指定します。
- 形式
nosplitdata=no-split-data-definition [△no-split-data-definition…]
- 指定値
-
- no-split-data-definitionオペランド形式1
-
data-attribute+pos−len
- no-split-data-definisionオペランド形式2
-
data-attribute+pos−maskbit
no-split-data-definitionに指定するそれぞれの値について次に示します。
data-attribute
非分割データの属性を指定します。
data-attributeに指定する値
意味
no-split-data-definision
形式
j
データが文字(JIS8単位コード※1)であることを指定します。
形式1
c
データが文字(英数字,漢字)であることを指定します。※3
形式1
n
データが符号付き小数点2進数であることを指定します。※9,※10
形式1
m
データが符号なし2進数(0から始まる整数)であることを指定します。※9,※10
形式1
a
データが符号なし2進数(0から始まる整数)であることを指定します※9,※10
(マスクビットで指定するビット単位のキーです)。
形式2
b
データが符号なし2進数(バイトデータ)であることを指定します※10
(マスクビットで指定するビット単位のキーです)。
形式2
p
データが内部10進数であることを指定します。
形式1
z
データが外部10進数であることを指定します。※5
形式1
x
データが左符号付き外部10進数であることを指定します。※5
形式1
s
データが右分離符号付き外部10進数であることを指定します。※5
形式1
t
データが左分離符号付き外部10進数であることを指定します。※5
形式1
f
データが内部浮動小数点であることを指定します。※9,※10
形式1
g
データが日付(英数字)であることを指定します。※5
形式1
q
データが文字(文字順序変更機能※2で指定した文字)であることを指定します。※3
形式1
d
データが文字(左分離符号付き数字)であることを指定します。※5
形式1
w
データが文字(ワイド文字※4,※6)であることを指定します(テキストファイルだけ指定できます)。
形式1
u
データが文字(マルチバイト文字※6,※7,※8)であることを指定します(テキストファイルだけ指定できます)。
形式1
v
データが文字(マルチバイト文字※6,※7,※8)であることを指定します(UnicodeのIVSに対応した属性で,テキストファイルだけ指定できます)。
形式1
- +pos
-
-
非分割データの開始バイト位置を指定します。指定できる桁数は,レコード長の上限値をバイト単位に変換した値の桁数以内です。
-
-locatajstパラメタの指定有無によって,レコード先頭の解釈が異なります。
-
テキストファイルに指定できる開始バイト位置(pos)の範囲は,UNIXの64ビット版(環境変数「EXSORT64MAXRECLEN」の指定がない,または無効の場合),UNIXの32ビット版,およびWindows版の場合,入力データのエンコード種別や改行文字の長さによって異なります。UNIXの64ビット版で環境変数「EXSORT64MAXRECLEN」の指定がある場合,入力データのエンコード種別よって異なりますが,改行文字の長さによって異なることはありません。
-
開始バイト位置(pos)に指定できる値の範囲を次の表に示します。
表5‒70 posに指定できる値の範囲(Windows版,UNIXの32ビット版,UNIXの64ビット版で環境変数「EXSORT64MAXRECLEN」の指定がない,または指定が無効の場合) ファイル編成
-locatajstパラメタ
指定あり
指定なし
固定長順編成ファイル
1〜65,535
0〜65,534
可変長順編成ファイル
5〜65,539※1
0〜65,534
テキスト
ファイル※2
改行文字
「LF」
ASCII
SJIS
EUC-JP
EUC-HJ
UTF-8
1〜65,535
0〜65,534
UCS-2LE
UCS-2BE
UTF-16LE
UTF-16BE
1〜65,533
(2の倍数+1※3)
0〜65,532
(2の倍数※3)
UCS-4LE
UCS-4BE
UTF-32LE
UTF-32BE
1〜65,529
(4の倍数+1※4)
0〜65,528
(4の倍数※4)
改行文字
「CRLF」
ASCII
SJIS
EUC-JP
EUC-HJ
UTF-8
1〜65,534
0〜65,533
UCS-2LE
UCS-2BE
UTF-16LE
UTF-16BE
1〜65,531
(2の倍数+1※3)
0〜65,530
(2の倍数※3)
UCS-4LE
UCS-4BE
UTF-32LE
UTF-32BE
1〜65,525
(4の倍数+1※4)
0〜65,524
(4の倍数※4)
表5‒71 posに指定できる値の範囲(UNIXの64ビット版で環境変数「EXSORT64MAXRECLEN」の指定がある場合) ファイル編成
-locatajstパラメタ
指定あり
指定なし
固定長順編成ファイル
1〜レコード長の上限値※1
0〜レコード長の上限値※1−1
可変長順編成ファイル
5〜レコード長の上限値※1+4※3
0〜レコード長の上限値※1−1
テキスト
ファイル※2
ASCII
SJIS
EUC-JP
EUC-HJ
UTF-8
1〜レコード長の上限値※1
0〜レコード長の上限値※1−1
UCS-2LE
UCS-2BE
UTF-16LE
UTF-16BE
1〜レコード長の上限値※1−1(2の倍数+1)※4
0〜レコード長の上限値※1−2(2の倍数)※4
UCS-4LE
UCS-4BE
UTF-32LE
UTF-32BE
1〜レコード長の上限値※1−3(4の倍数+1)※5
0〜レコード長の上限値※1−4(4の倍数)※5
-
- −len
-
非分割データの長さを次の表に示す範囲で指定します。
data-attribute
指定できる長さ(単位)
j,c,q,w※1
-
入力データのエンコードが「ASCII」,「SJIS」,「EUC-JP」,「EUC-HJ」または「UTF-8」の場合
1〜4,096(バイト)
-
入力データのエンコードが「UCS-2LE」,「UCS-2BE」,「UTF-16LE」または「UTF-16BE」の場合※2
2〜8,192(バイト)
-
入力データのエンコードが「UCS-4LE」,「UCS-4BE」,「UTF-32LE」または「UTF-32BE」の場合※3
4〜16,384(バイト)
u,v
1〜4,096(文字数)※6
m,n
2,4または8(バイト)
p
1〜10(バイト)
z,x
1〜18(桁)※4
s,t
2〜19(桁)※4
f
4または8(バイト)
g
2〜8(桁)※5
d
1〜256(桁)※4
-
- −maskbit
-
-
属性コード「a」または「b」を指定した場合,マスクビットを16進数で指定します。
-
16進数のA〜Fは,小文字・大文字のどちらでも指定できます。
-
キーデータに対して,指定したマスクビットでAND演算を行った結果でソートします。なお,このAND演算によってキーデータが更新されることはありません。
-
すべての桁を「00」とするマスクビット指定はできません。指定した場合は,KBLS1201-Eエラーとなります。
-
指定できるマスクビットの桁は次のとおりです。
key-attribute
に指定する値
指定できるmaskbitの桁
備考
a
4,8または16(桁)※1
キーの長さは2,4または8バイト
b
2〜8,192(桁)※2
キーの長さは1〜4,096バイト
-
- 非分割データの範囲
-
非分割データは,次の範囲で指定してください。
・入力ファイルが固定長順編成ファイルのとき,レコード長の範囲
・入力ファイルが可変長順編成ファイルのとき,最小レコード長の範囲※1
・入力ファイルがテキストファイルのとき,最小レコード長の範囲※1,※2
注※1
可変長順編成ファイルで,-cmdoptパラメタのPOSNOCHKオプションを指定している場合は,最大レコード長の範囲となります。
なお,POSNOCHKオプションでは,最大レコード長を超えた範囲を非分割データとして指定してもエラーになりませんが,最大レコード長を超えた部分の非分割データの値は必ずNULL値(0x00)が仮定されるので注意してください。
-cmdoptパラメタのPOSNOCHKオプションについては,「5.5.11 キー位置のチェックオプション(POSNOCHKオプション)」を参照してください。
注※2
テキストファイルに指定した属性コード「u」または「v」の場合は,キーの指定範囲が実レコード長を超えていてもエラーにはなりません。実レコード長を超えた部分には空白を仮定してキーを比較します。
- 注意事項
-
-
指定できる個数は1〜64個です。
-
次の例のように,属性によってはデータが異なっても同じ値として扱います。
データ:「+0」と「-0」
属性t:同じ値として扱います。
属性c:同じ値として扱いません。
-
非分割データを複数指定した場合,先に指定した非分割データほど優先順位が高く,あとに指定した非分割データほど優先順位が低くなります。
-
非分割データの範囲は,ほかの非分割データと重なってもかまいません。
-
レコード編集によって,入力レコードと異なった位置に非分割データを再編成するような場合は注意が必要となります。非分割データの範囲は,最後に実行したレコード編集後のレコードを基に指定してください。非分割データの位置(範囲)は,「付録F レコード編集処理で基になるレコード(SORT EEの機能)」に示す規則に従って指定してください。
-