ソートマージ


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]+insertdatacnt

挿入データ形式および挿入位置を指定します。

  • [insertpos]+insertdatacntは必ず続けて指定してください。それぞれの値の間に空白やタブを指定しないでください。

  • [insertpos]+insertdatacntを複数指定する場合は,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オペランド」を参照してください。