5.10.3 reclenオペランド
- 意味
-
出力レコード長を指定します。可変長順,テキスト,またはCSVファイルの場合は最大レコード長を指定します。
- 形式
reclen=record-length
-
レコード編集(-reorgパラメタ,reorgオペランド)の指定があり,かつ出力ファイルのファイル編成が固定長順または可変長順の場合,このオペランドは必須です(入力レコードと出力レコードのレコード長が変わらなくても必要です)。出力ファイルのファイル編成とreclen,minlenオペランドの関係を次の表に示します。
出力ファイルのファイル編成
オペランド
reclen
minlen※
固定長順編成ファイル
○
×
可変長順編成ファイル
○
○
テキストファイル
△
△
CSVファイル
△
△
-
入力ファイルと出力ファイルのファイル編成が異なり,かつ出力ファイルのファイル編成が固定長順または可変長順の場合,reclenオペランドは必須です(入力レコードと出力レコード長が変わらなくても必要です)。入力ファイル,出力ファイルのファイル編成とreclen,minlenオペランドの関係を次の表に示します。
表5‒22 ファイル編成とreclen,minlenオペランドの関係 入力ファイルのファイル編成
出力ファイルのファイル編成
オペランド
reclen
minlen※
固定長順編成
固定長順編成
△
×
可変長順編成
○
○
テキスト
△
△
可変長順編成
固定長順編成
○
×
可変長順編成
△
△
テキスト
△
△
テキスト
固定長順編成
○
×
可変長順編成
○
○
テキスト
△
△
CSV
CSV
△
△
-
- 指定値
-
- record-length
-
-
出力レコード長を数字で指定します。指定できる桁数は,レコード長の上限値をバイト単位に変換した値の桁数以内です。出力レコード長に指定できる範囲を次に示します。
出力ファイル編成
指定できる範囲
Windows版,UNIXの32ビット版SORT EE
UNIXの64ビット版SORT EE
環境変数「EXSORT64MAXRECLEN」の指定
なし
あり
固定長順編成ファイル
1〜65,535
1〜65,535
1〜レコード長の上限値※1
可変長順編成ファイル
1〜65,535
1〜65,535
1〜レコード長の上限値※1
テキストファイル※4
1〜65,535※2
1〜65,535※2
1〜レコード長の上限値※1,※3
CSVファイル※4
0〜65,535※2
0〜65,535※2
0〜レコード長の上限値※1,※3
-
- 注※1
-
レコード長の上限値は,環境変数「EXSORT64MAXRECLEN」に指定した「レコード長の上限値」です。
- 注※2
-
指定できる範囲の最大値は,codetypeオペランドに指定した入力データのエンコード種別や,recsepaオペランドで指定した改行文字の長さによって異なります。指定できる範囲の最大値を次の表に示します。なお,入力データのエンコードについては「5.8.13 codetypeオペランド」を,出力レコードの改行文字については「5.10.5 recsepaオペランド」を参照してください。
表5‒23 テキスト・CSVファイルに指定できる範囲の最大値 エンコード
種別
改行文字のコード
テキスト・CSVファイルの指定できる範囲の最大値
CR
LF
改行文字がLFの場合
改行文字がCRLFの場合
ASCII
0x0d
0x0a
65,535
65,534
SJIS
EUC-JP
EUC-HJ
UTF-8
UCS-2LE
0x0d00
0x0a00
65,534
65,532
UTF-16LE
UCS-2BE
0x000d
0x000a
UTF-16BE
UCS-4LE
0x0d000000
0x0a000000
65,532
65,528
UTF-32LE
UCS-4BE
0x0000000d
0x0000000a
UTF-32BE
- 注※3
-
レコード長の上限値は,入力データのエンコード種別や改行文字の長さによって異なることはありません。
- 注※4
-
-
入力データのエンコードが「UCS-2LE」,「UCS-2BE」,「UTF-16LE」または「UTF-16BE」の場合,レコード長は2の倍数でなければなりません。
-
入力データのエンコードが「UCS-4LE」,「UCS-4BE」,「UTF-32LE」または「UTF-32BE」の場合,レコード長は4の倍数でなければなりません。
-
- 注意事項
-
- レコード編集機能を指定している場合の注意事項
-
-
複数のレコード編集機能を指定した場合は,最後に指定したレコード編集後のレコード長を検証します。
-
レコード編集後のレコード長が,このオペランドで指定した出力レコード長と不一致(または超えている)場合はエラーとなります。レコード編集とreclenオペランドの関係については,「5.8.14 reorgオペランド」の「表5-15 レコード編集とreclenオペランドおよびminlenオペランドとの関係」および「表5-16 出力ファイルのファイル編成とreclenオペランドおよびminlenオペランドとの関係」を参照してください。
-
- 出力レコードフォーマット機能を指定している場合の注意事項
-
-
出力レコードフォーマット機能の指定がある場合,フォーマット長を指定した値にそろえて出力します。
-
固定長順編成ファイルの出力レコードのそろえ方を,次の表に示します。
表5‒24 固定長順編成ファイルの出力レコードのそろえ方 reclenオペランド
レコード長のそろえ方
指定あり
フォーマット長※
< reclen
-
出力レコード長に足りない部分を埋めます。
-
埋め込みデータはpaddingオペランドで指定できます。
-
paddingオペランドを省略した場合,ゼロ値で埋めます。
paddingオペランドについては,「5.10.9 paddingオペランド」を参照してください。
フォーマット長※
= reclen
フォーマット長※で出力します。
フォーマット長※
> reclen
-
出力レコード長を超えた部分を切り捨てます。
-
マルチバイト文字(日本語)の途中で超えた場合,文字の途中バイトから切り捨てます。途中バイトから切り捨てた文字は日本語として正しく表示できなくなるので注意してください。
指定なし
フォーマット長※で出力します。
-
-
テキストまたはCSVファイルの出力レコードのそろえ方を,次の表に示します。
表5‒25 テキストまたはCSVファイルの出力レコードのそろえ方 reclenオペランド
レコード長のそろえ方
指定あり
フォーマット長※
< minlen
-
出力レコード長に足りない部分を埋めます。
-
埋め込みデータはpaddingオペランドで指定できます。
-
paddingオペランドを省略した場合,空白で埋めます。
paddingオペランドについては,「5.10.9 paddingオペランド」を参照してください。
minlen ≦
フォーマット長※
≦ reclen
フォーマット長※で出力します。
フォーマット長※
> reclen
-
出力レコード長を超えた部分を切り捨てます。
-
マルチバイト文字(日本語)の途中で超えた場合,文字の途中バイトから切り捨てます。途中バイトから切り捨てた文字は日本語として正しく表示できなくなるので注意してください。
指定なし
フォーマット長※で出力します。
-
-
minlenオペランドの指定方法については,「5.10.4 minlenオペランド」を参照してください。
-
出力ファイルのレコード長は,改行文字を除いた長さとなります。出力レコードの改行文字の種類は,-outfileまたは-joinoutパラメタのrecsepaオペランドの指定で決まります。詳細は,「5.10.5 recsepaオペランド」を参照してください。
-
- レコード編集機能を指定していない場合の注意事項
-
-
このオペランドに指定したレコード長で,出力レコード長をそろえます。
-
固定長順編成ファイルの出力レコードのそろえ方を次の表に示します。
表5‒26 固定長順編成ファイルの出力レコードのそろえ方 reclenオペランド
レコード長のそろえ方
指定あり
実レコード長<reclen
-
出力レコード長に足りない部分を埋めます。
-
埋め込みデータはpaddingオペランドで指定できます。
-
paddingオペランドを省略した場合,ゼロ値で埋めます。
実レコード長=reclen
実レコード長で出力します。
実レコード長>reclen
-
出力レコード長を超えた部分を切り捨てます。
-
マルチバイト文字(日本語)の途中で超えた場合,文字の途中バイトから切り捨てます。途中バイトから切り捨てた文字は日本語として正しく表示できなくなるので注意してください。
指定なし
実レコード長で出力します。
-
-
固定長順編成ファイル以外(可変長順編成ファイル,テキストファイル,またはCSVファイル)の出力レコードのそろえ方を次の表に示します。minlenオペランドの指定方法については,「5.10.4 minlenオペランド」を参照してください。
表5‒27 固定長順編成ファイル以外の出力レコードのそろえ方 reclen,minlenオペランド
レコード長のそろえ方
指定あり
実レコード長<minlen
-
出力レコード長に足りない部分を埋めます。
-
埋め込みデータはpaddingオペランドで指定できます。
-
paddingオペランドを省略した場合,次の値で埋めます。
テキスト,CSVファイル:空白
上記以外:ゼロ値
minlen≦
実レコード長
≦reclen
実レコード長で出力します。
実レコード長>reclen
-
出力レコード長を超えた部分を切り捨てます。
-
マルチバイト文字(日本語)の途中で超えた場合,文字の途中バイトから切り捨てます。途中バイトから切り捨てた文字は日本語として正しく表示できなくなるので注意してください。
指定なし
実レコード長で出力します。
-
-
出力ファイルのレコード長は,改行文字を除いた長さとなります。出力レコードの改行文字の種類は,出力ファイルパラメタ(-outfile,-catout,-splitout,または-joinoutパラメタ)のrecsepaオペランドの指定で決まります。詳細は,「5.10.5 recsepaオペランド」を参照してください。
-
テキストファイルおよびCSVファイルで出力レコードの改行文字を変更する場合,出力レコード長が65,535バイト以下(UNIXの64ビット版(環境変数「EXSORT64MAXRECLEN」の指定がない,または無効の場合),UNIXの32ビット版,およびWindows版)では,指定できるレコード長も変更されるので注意してください。例えば入力データのエンコードが「SJIS」の場合,改行文字「LF」で,かつレコード長が65,535バイトの入力レコードのとき,改行文字を「CRLF」に変更すると,最大レコード長の65,534バイトを超えてKBLS1630-Eエラーとなります。
なお,出力レコード長が65,536バイト以上(UNIXの64ビット版SORT EEで環境変数「EXSORT64MAXRECLEN」を指定)の場合,出力レコードの改行文字を変更しても,指定できるレコード長は変更されません。
-
- 【例】