5.10.10 reorgオペランド
- 意味
-
出力レコード編集フォーマットを指定します。編集フォーマットの指定例および注意事項については,「5.8.14 reorgオペランド」を参照してください。
- 形式
reorg=reorganization-format [△reorganization-format …]
指定できるフォーマットの個数は,1〜128個です。
reorganization-formatの形式を次に示します。
- reorganization-formatオペランド形式1
[insertpos]+pos[−len][boundary]
入力レコード中の編集フィールドおよび挿入位置を指定します。
-
[insertpos]+pos[−len][boundary]は必ず続けて指定してください。それぞれの値の間に空白やタブを指定しないでください。
-
[insertpos]+pos[−len][boundary]を複数指定する場合は,1個以上の空白またはタブで区切って指定します。
-
- reorganization-formatオペランド形式2
[insertpos]+insertdata−cnt
挿入データ形式および挿入位置を指定します。
-
[insertpos]+insertdata−cntは必ず続けて指定してください。それぞれの値の間に空白やタブを指定しないでください。
-
[insertpos]+insertdata−cntを複数指定する場合は,1個以上の空白またはタブで区切って指定します。
-
- 指定値
-
- insertpos
-
-
編集フィールド,および挿入データ(文字列,16進数,または空白)の挿入開始バイト位置を数字で指定します。指定できる桁数は,レコード長の上限値をバイト単位に変換した値の桁数以内です。
-
前の編集フィールドや挿入データと重なる位置は指定できません。
-
前の編集フィールドまたは挿入データとの間に間隔が生じる場合には,空白を埋め込みます。
-
-locatajstパラメタを指定したかどうかによって,レコード先頭の解釈が異なります。
-
テキストファイルに指定できる挿入開始バイト位置(insertpos)の範囲は,UNIXの64ビット版(環境変数「EXSORT64MAXRECLEN」の指定がない,または無効の場合),UNIXの32ビット版,およびWindows版の場合,入力データのエンコード種別や改行文字の長さによって異なります。UNIXの64ビット版で環境変数「EXSORT64MAXRECLEN」の指定がある場合,入力データのエンコード種別よって異なりますが,改行文字の長さによって異なることはありません。
挿入開始バイト位置に指定できる値の範囲を次の表に示します。
表5‒28 insertposに指定できる値の範囲(Windows版,UNIXの32ビット版,UNIXの64ビット版で環境変数「EXSORT64MAXRECLEN」の指定がない,または指定が無効の場合) ファイル編成
-locatajstパラメタ
指定あり
指定なし
固定長順編成ファイル
1〜65,535
0〜65,534
可変長順編成ファイル
1または5〜65,539※1
テキストファイル※2
改行文字
「LF」
ASCII
SJIS
EUC-JP
EUC-HJ
UTF-8
1〜65,535
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)
-
- 注※1
-
レコードの前の4バイト領域(RDW:レコードヘッダ)の先頭が1となります。
- 注※2
-
入力レコードの改行文字については,「5.8.7 recsepaオペランド」を参照してください。また,入力データのエンコードについては,「5.8.13 codetypeオペランド」を参照してください。
- 注※3
-
2の倍数(-locatajstパラメタを同時に指定している場合は「2の倍数+1」)以外を指定すると,KBLS1500-Eメッセージが表示されてエラーになります。
- 注※4
-
4の倍数(-locatajstパラメタを同時に指定している場合は「4の倍数+1」)以外を指定すると,KBLS1500-Eメッセージが表示されてエラーになります。
表5‒29 insertposに指定できる値の範囲(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
- 注※1
-
レコード長の上限値は,環境変数「EXSORT64MAXRECLEN」に指定した「レコード長の上限値」です。
環境変数「EXSORT64MAXRECLEN」ついては「14.1 SORT EEの環境変数の設定」を参照してください。
- 注※2
-
入力データのエンコード種別については「5.8.13 codetypeオペランド」を参照してください。
- 注※3
-
レコードの前の4バイト領域(RDW:レコードヘッダ)の先頭が1となります。
- 注※4
-
2の倍数(-locatajstパラメタを同時に指定している場合は「2の倍数+1」)以外を指定すると,KBLS1500-Eメッセージが表示されてエラーになります。
- 注※5
-
4の倍数(-locatajstパラメタを同時に指定している場合は「4の倍数+1」)以外を指定すると,KBLS1500-Eメッセージが表示されてエラーになります。
-
2番目以降の編集フィールドの挿入開始バイト位置を省略した場合,直前の編集フィールドに隣接して配置します。
-
先頭の編集フィールドの挿入開始バイト位置を省略した場合,挿入開始バイト位置の仮定値を次の表に示します。
ファイル編成
-locatajstパラメタ
指定あり
指定なし
固定長順編成ファイル
1
0
可変長順編成ファイル
1または5※
0
テキストファイル
1
0
-
- 注※
-
編集フィールドのデータ位置(+pos)に1を指定した場合は1を仮定し,1以外を指定した場合は5を仮定します。
- +pos
-
-
編集フィールドのデータ位置を数字で指定します。指定できる桁数は,レコード長の上限値をバイト単位に変換した値の桁数以内です。なお,-locatajstパラメタを指定したかどうかによって,レコード先頭の解釈が異なります。
-
入力データのエンコードに「UCS-2LE」,「UCS-2BE」,「UTF-16LE」,「UTF-16BE」または「UNICODE(入力ファイルのUnicodeシグニチャ(BOM)の形式がUTF-16LEまたはUTF-16BE)」を指定した場合,データ位置には「2の倍数」を指定してください。2の倍数以外を指定すると,KBLS1503-Eメッセージが表示されてエラーになります。なお,-locatajstパラメタを同時に指定している場合は,「2の倍数+1」を指定してください。
-
入力データのエンコードに「UCS-4LE」,「UCS-4BE」,「UTF-32LE」,「UTF-32BE」または「UNICODE(入力ファイルのUnicodeシグニチャ(BOM)の形式がUTF-32LEまたはUTF-32BE)」を指定した場合,データ位置には「4の倍数」を指定してください。4の倍数以外を指定すると,KBLS1503-Eメッセージが表示されてエラーになります。なお,-locatajstパラメタを同時に指定している場合は,「4の倍数+1」を指定してください。
-
データ位置に指定できる値の範囲は,insertposの挿入開始バイト位置に指定できる値の範囲と同じです。
-
- −len
-
-
編集フィールドのバイト長を数字で指定します。指定できる桁数は,レコード長の上限値をバイト単位に変換した値の桁数以内です。
-
入力ファイルが可変長順編成ファイル,またはテキストファイルの場合,最後の編集フィールドに限りバイト長を省略できます。省略した場合,指定したデータ位置から実レコードの最後までを編集フィールドとして扱います。
-
編集フィールドのバイト長(len)に指定できる範囲を次の表に示します。
表5‒30 lenに指定できる値の範囲(Windows版,UNIXの32ビット版,UNIXの64ビット版で環境変数「EXSORT64MAXRECLEN」の指定がない,または指定が無効の場合) ファイル編成
-locatajstパラメタ
指定あり
指定なし
固定長順編成ファイル
1〜65,535
1〜65,535
可変長順編成ファイル
1〜65,539
テキストファイル※1
改行文字
「LF」
ASCII
SJIS
EUC-JP
EUC-HJ
UTF-8
1〜65,535
UCS-2LE
UCS-2BE
UTF-16LE
UTF-16BE
2〜65,534
(2の倍数※2)
2〜65,534
(2の倍数※2)
UCS-4LE
UCS-4BE
UTF-32LE
UTF-32BE
4〜65,532
(4の倍数※3)
4〜65,532
(4の倍数※3)
改行文字
「CRLF」
ASCII
SJIS
EUC-JP
EUC-HJ
UTF-8
1〜65,534
1〜65,534
UCS-2LE
UCS-2BE
UTF-16LE
UTF-16BE
2〜65,532
(2の倍数※2)
2〜65,532
(2の倍数※2)
UCS-4LE
UCS-4BE
UTF-32LE
UTF-32BE
4〜65,528
(4の倍数※3)
4〜65,528
(4の倍数※3)
-
- 注※1
-
入力データのエンコード種別によって,改行文字の長さとlenに指定できる値の範囲が変わります。入力レコードの改行文字については,「5.8.7 recsepaオペランド」を参照してください。また,入力データのエンコードについては,「5.8.13 codetypeオペランド」を参照してください。
- 注※2
-
2の倍数以外を指定すると,KBLS1505-Eメッセージが表示されてエラーになります。
- 注※3
-
4の倍数以外を指定すると,KBLS1505-Eメッセージが表示されてエラーになります。
表5‒31 lenに指定できる値の範囲(UNIXの64ビット版で環境変数「EXSORT64MAXRECLEN」の指定がある場合) ファイル編成
-locatajstパラメタ
指定あり
指定なし
固定長順編成ファイル
1〜レコード長の上限値※2
1〜レコード長の上限値※2
可変長順編成ファイル
1〜レコード長の上限値+4※2
テキストファイル※1
ASCII
SJIS
EUC-JP
EUC-HJ
UTF-8
1〜レコード長の上限値※2
UCS-2LE
UCS-2BE
UTF-16LE
UTF-16BE
2〜レコード長の上限値※2(2の倍数※3)
2〜レコード長の上限値※2(2の倍数※3)
UCS-4LE
UCS-4BE
UTF-32LE
UTF-32BE
4〜レコード長の上限値※2(4の倍数※4)
4〜レコード長の上限値※2(4の倍数※4)
- 注※1
-
入力データのエンコードについては,「5.8.13 codetypeオペランド」を参照してください。
- 注※2
-
レコード長の上限値は,環境変数「EXSORT64MAXRECLEN」に指定した「レコード長の上限値」です。
環境変数「EXSORT64MAXRECLEN」ついては「14.1 SORT EEの環境変数の設定」を参照してください。
- 注※3
-
2の倍数以外を指定すると,KBLS1505-Eメッセージが表示されてエラーになります。
- 注※4
-
4の倍数以外を指定すると,KBLS1505-Eメッセージが表示されてエラーになります。
- +insertdata
-
-
挿入するデータの形式を指定します。insertdataに指定する値は,「5.8.14 reorgオペランド」の「insertdata」を参照してください。
-
- −cnt
-
-
挿入データの繰り返し回数を数字で指定します。
繰り返しの回数に指定できる範囲は1〜レコード長の上限値で,指定できる桁数はレコード長の上限値をバイト単位に変換した値の桁数以内です。
表5‒32 cntに指定できる繰り返しの回数の範囲 レコードの上限値
Windows版,UNIXの32ビット版SORT EE
UNIXの64ビット版SORT EE
環境変数「EXSORT64MAXRECLEN」の指定
なしまたは指定が無効
あり
65,535
65,535
「EXSORT64MAXRECLEN」に指定した「レコード長の上限値」
環境変数「EXSORT64MAXRECLEN」ついては「14.1 SORT EEの環境変数の設定」を参照してください。
-
+insertdataで挿入するデータの形式を指定した場合,この設定は省略できません。
-
「挿入データのバイト長※×繰り返し回数」の値は,レコード長の上限値以下にする必要があります。
注※ 16進数で指定した場合は,2桁で1バイトです。
-
- boundary
-
-
編集フィールドを配置するときの境界調整を指定します。boundaryに指定する値については,「5.8.14 reorgオペランド」の「boundary」を参照してください。
-
- レコード編集後のレコード長の指定
-
レコード編集後のレコード長を-outfileパラメタのreclenオペランドおよびminlenオペランドに指定します。指定方法はreorgオペランドと同じです。詳細は「5.8.14 reorgオペランド」を参照してください。