ソートマージ

[目次][用語][索引][前へ][次へ]

5.10.3 reclenオペランド

意味
出力レコード長を指定します。可変長順,テキスト,またはCSVファイルの場合は最大レコード長を指定します。

形式
reclen=record-length
  • レコード編集(-reorgパラメタ,reorgオペランド)の指定があり,かつ出力ファイルのファイル編成が固定長順または可変長順の場合,このオペランドは必須です(入力レコードと出力レコードのレコード長が変わらなくても必要です)。出力ファイルのファイル編成とreclen,minlenオペランドの関係を次の表に示します。
    出力ファイルのファイル編成 オペランド
    reclen minlen
    固定長順編成ファイル ×
    可変長順編成ファイル
    テキストファイル
    CSVファイル

    (凡例)
    ○:必須
    ×:指定できない
    △:指定できる(レコード編集後のレコード長を指定)

    注※
    minlenオペランドの詳細については,「5.10.4 minlenオペランド」を参照してください。
     

  • 入力ファイルと出力ファイルのファイル編成が異なり,かつ出力ファイルのファイル編成が固定長順または可変長順の場合,reclenオペランドは必須です(入力レコードと出力レコード長が変わらなくても必要です)。入力ファイル,出力ファイルのファイル編成とreclen,minlenオペランドの関係を次の表に示します。

    表5-22 ファイル編成とreclen,minlenオペランドの関係

    入力ファイルのファイル編成 出力ファイルのファイル編成 オペランド
    reclen minlen
    固定長順編成 固定長順編成 ×
    可変長順編成
    テキスト
    可変長順編成 固定長順編成 ×
    可変長順編成
    テキスト
    テキスト 固定長順編成 ×
    可変長順編成
    テキスト
    CSV CSV

    (凡例)
    ○:必須
    ×:指定できない
    △:指定できる(指定したレコード長にそろえて出力します)

    注※
    minlenオペランドの詳細については,「5.10.4 minlenオペランド」を参照してください。

指定値
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の倍数でなければなりません。

注意事項
レコード編集機能を指定している場合の注意事項
出力レコードフォーマット機能を指定している場合の注意事項
  • 出力レコードフォーマット機能の指定がある場合,フォーマット長を指定した値にそろえて出力します。
  • 固定長順編成ファイルの出力レコードのそろえ方を,次の表に示します。

    表5-24 固定長順編成ファイルの出力レコードのそろえ方

    reclenオペランド レコード長のそろえ方
    指定あり フォーマット長
     < reclen

    • 出力レコード長に足りない部分を埋めます。
    • 埋め込みデータはpaddingオペランドで指定できます。
    • paddingオペランドを省略した場合,ゼロ値で埋めます。
      paddingオペランドについては,「5.10.9 paddingオペランド」を参照してください。
    フォーマット長
     = reclen
    フォーマット長で出力します。
    フォーマット長
     > reclen

    • 出力レコード長を超えた部分を切り捨てます。
    • マルチバイト文字(日本語)の途中で超えた場合,文字の途中バイトから切り捨てます。途中バイトから切り捨てた文字は日本語として正しく表示できなくなるので注意してください。
    指定なし フォーマット長で出力します。

    注※
    フォーマット長とは,出力レコードフォーマット機能指定時の出力レコード長(formatオペランドで指定した各項目の長さ(lenサブオペランドまたはfieldオペランドで指定した長さなど)の合計長)を示します。

  • テキストまたはCSVファイルの出力レコードのそろえ方を,次の表に示します。

    表5-25 テキストまたはCSVファイルの出力レコードのそろえ方

    reclenオペランド レコード長のそろえ方
    指定あり フォーマット長
    < minlen

    • 出力レコード長に足りない部分を埋めます。
    • 埋め込みデータはpaddingオペランドで指定できます。
    • paddingオペランドを省略した場合,空白で埋めます。
      paddingオペランドについては,「5.10.9 paddingオペランド」を参照してください。
    minlen ≦
    フォーマット長
    ≦ reclen
    フォーマット長で出力します。
    フォーマット長
    > reclen

    • 出力レコード長を超えた部分を切り捨てます。
    • マルチバイト文字(日本語)の途中で超えた場合,文字の途中バイトから切り捨てます。途中バイトから切り捨てた文字は日本語として正しく表示できなくなるので注意してください。
    指定なし フォーマット長で出力します。

    注※
    フォーマット長とは,出力レコードフォーマット機能指定時の出力レコード長(formatまたはcsvformatオペランドで指定した各項目の長さ(lenサブオペランド,fieldまたはcsvfieldオペランドで指定した長さなど)の合計長)を示します。

  • 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」を指定)の場合,出力レコードの改行文字を変更しても,指定できるレコード長は変更されません。
【例】
[図データ]