ソートマージ


5.21.4 nosplitcsvdataオペランド

意味

非分割CSVデータを指定します。

形式
nosplitcsvdata=no-split-csv-data-definition
               [△no-split-csv-data-definition…]
指定値
no-split-csv-data-definitionオペランド形式1
data-attributecellposlen [△data-attributecellposlen … ]
  • 文字データのセルを定義します。

  • data-attributeには,「j」,「c」,「d」,「w」,「u」,「v」または「q」を指定できます。

no-split-csv-data-definitionオペランド形式2
data-attributecellposp [,s] [△data-attributecellposp[,s] … ]
  • 数値データ(固定小数点数)のセルを定義します。

  • data-attributeには,「z」だけを指定できます。

  • データ中に,引用符による囲み,符号,通貨記号,桁修飾文字(コンマ,小数点,空白)が含まれる場合,これらの文字を除いたデータで比較します。

  • 環境ファイルの「EXS_ROUND」または-inpfile,-catinp,-splitinpパラメタのroundオペランドで,丸め方式(四捨五入,切り捨て,または切り上げ)を指定します。この場合,小数部は指定に従って処理されます。

    EXS_ROUNDおよびroundオペランドの両方の指定を省略している場合,切り捨てられて処理されます。詳細は,「5.8.11 roundオペランド」を参照してください。

no-split-csv-data-definitionオペランド形式3
data-attributecellposddateform [△data-attributecellposddateform … ]
  • 日付データのセルを定義します。

  • data-attributeには,「g」だけを指定できます。

no-split-csv-data-definitionオペランド形式4
data-attributecellposdatedigit[,timedigit]
[△data-attributecellposdatedigit[,timedigit] … ]
  • 日付時刻データのセルを定義します。

  • data-attributeには,「h」だけを指定できます。

no-split-csv-data-definitionに指定するそれぞれの値について次に示します。

data-attribute

非分割CSVデータの属性を指定します。

data-attributeに指定する値

意味

指定できる形式

j

データが文字(JIS8単位コード※1)であることを指定します。

形式1

c

データが文字であることを指定します。※3

形式1

d

データが文字(左分離符号付き数字)であることを指定します。※5

形式1

q

データが文字(文字順序変更機能※2で指定した文字)であることを指定します。※3

形式1

z

データが数値(固定小数点数)であることを指定します。※5

形式2

g

データが日付(英数字)であることを指定します。※5

形式3

h

データが日付時刻(数字)であることを指定します。※7

形式4

w

データが文字(ワイド文字※4,※6)であることを指定します。

形式1

u

データが文字(マルチバイト文字※6,※8,※9)であることを指定します。

形式1

v

データが文字(マルチバイト文字※6,※8,※9)であることを指定します(UnicodeのIVSに対応した属性です)。

形式1

注※1

ASCIIコード(0x00〜0x7F)を含む,JIS8単位コード(0x00〜0xFF)を意味します。

入力データに日本語などのマルチバイト文字が含まれている場合,マルチバイト文字として扱わず,シングルバイト文字として扱います。

EBCDIKコードの体系に従ってキーを比較するEBCDIKコード比較オプション機能を使用できます。「EBCDIKコード比較オプション機能」については,「5.5.3 EBCDIKコード比較オプション(EBCJ,EBCEオプション)」を参照してください。

注※2

文字順序変更機能については,「5.15 -altseqパラメタ」を参照してください。

注※3

入力データのエンコードの種別には対応しません。入力データの文字を構成するバイト長を意識しないで,常に1バイト長のシングルバイト文字として扱います。ASCIIコードやJIS8単位コード向けの属性です。

注※4

入力データのエンコードに「UCS-2LE」,「UCS-2BE」,「UTF-16LE」,「UTF-16BE」または「UNICODE(入力ファイルのUnicodeシグニチャ(BOM)の形式がUTF-16LEまたはUTF-16BE)」を指定した場合,1文字2バイトのワイド文字として扱います。またサロゲートペア文字は2文字として扱います。

入力データのエンコードに「UCS-4LE」,「UCS-4BE」,「UTF-32LE」,「UTF-32BE」または「UNICODE(入力ファイルのUnicodeシグニチャ(BOM)の形式がUTF-32LEまたはUTF-32BE)」を指定した場合,1文字4バイトのワイド文字として扱います。

文字のエンコードの指定方法については,「5.8.13 codetypeオペランド」を参照してください。

注※5

入力データのエンコードで解釈します。

「ASCII」,「SJIS」,「EUC-JP」,「EUC-HJ」または「UTF-8」を指定した場合は1バイト,「UCS-2LE」,「UCS-2BE」,「UTF-16LE」または「UTF-16BE」を指定した場合は2バイト,「UCS-4LE」,「UCS-4BE」,「UTF-32LE」または「UTF-32BE」を指定した場合は4バイトの長さで文字を扱います。

文字のエンコードの指定方法については,「5.8.13 codetypeオペランド」を参照してください。

注※6

非分割CSVデータ範囲の入力データがすべてASCII対応コード(英数字)である場合は,属性コード「c」を指定した方が処理効率が向上します。属性コード「c」は1文字1バイトで扱いますので,エンコードに対応したバイト長を指定してください。

ASCII対応コードについては,「付録H Unicode操作文字コード一覧(SORT EE)」を参照してください。

1文字の長さについては,「付録I.2(1) 文字の長さ」を参照してください。

文字属性コードの特徴については,「付録I.2(2) 文字属性コードの特徴」を参照してください。

注※7

非分割CSVデータ範囲の入力データが次の条件すべてに該当する場合は,属性コード「c」を指定した方が処理効率は向上します。

・桁数がそろっている。

・時刻が24時間制で表記されている。

・日付,時刻またがりのデータがない。

属性コード「c」は1文字1バイトで扱いますので,エンコードに対応したバイト長を指定してください。

1文字の長さについては,「付録I.2(1) 文字の長さ」を参照してください。文字属性コードの特徴については,「付録I.2(2) 文字属性コードの特徴」を参照してください。

注※8

属性コード「u」と「v」は,入力データのエンコードで解釈します。1文字の長さは可変長として扱います。

文字のエンコードの指定方法については,「5.8.13 codetypeオペランド」を参照してください。また,マルチバイト文字の扱いについては,「付録I.2 文字列データの扱い」を参照してください。

注※9

入力データのエンコードに「UTF-8」,「UTF-16LE」,「UTF-16BE」,「UCS-4LE」,「UCS-4BE」,「UTF-32LE」,「UTF-32BE」または「UNICODE(入力ファイルのUnicodeシグニチャ(BOM)の形式がUTF-16LE,UTF-16BE,UTF-32LEまたはUTF-32BE)」のどれかを指定した場合,UnicodeのIVS(Ideographic Variation Sequence)を次のとおり解釈します。UnicodeのIVSについては,「付録I.2(6) IVS対応」を参照してください。

・属性コード「u」は,UCSコードが一致する文字であれば,UnicodeのIVSの異体字であっても同じ文字として扱います。

・属性コード「v」は,UCSコードが一致する文字であっても,VS(Variation Selector,異体字セレクタ)が異なる場合は,異なる文字として扱います。

cellpos

非分割CSVデータとするセル番号を数字で指定します。

指定できる範囲は1〜16384です。

指定方法については,「5.16 -csvkeyパラメタ」の「+cellpos」を参照してください。

len

data-attributeに「j」,「c」,「q」,「w」,「u」,「v」または「d」を指定した場合に,非分割CSVデータの最大長を10進数で指定します。

  • 属性「d」は最大桁数を指定します。

  • キーの長さを次の表に示す範囲で指定します。

    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(文字数)※5

    d

    1〜256(桁)※4

    注※1

    入力データのエンコードの種別によって,マルチバイト文字の長さは異なります。詳細は「付録I.2 文字列データの扱い」を参照してください。

    注※2

    入力データのエンコードに「UCS-2LE」,「UCS-2BE」,「UTF-16LE」,「UTF-16BE」または「UNICODE(入力ファイルのUnicodeシグニチャ(BOM)の形式がUTF-16LEまたはUTF-16BE)」を指定した場合,長さには「2の倍数」を指定してください。

    2の倍数以外を指定すると,KBLS2056-Eメッセージが表示されてエラーになります。

    注※3

    入力データのエンコードに「UCS-4LE」,「UCS-4BE」,「UTF-32LE」,「UTF-32BE」または「UNICODE(入力ファイルのUnicodeシグニチャ(BOM)の形式がUTF-32LEまたはUTF-16BE)」を指定した場合,長さには「4の倍数」を指定してください。

    4の倍数以外を指定すると,KBLS2056-Eメッセージが表示されてエラーになります。

    注※4

    「バイト長」ではなく数値の「桁数」を指定してください。「UCS-2」,「UCS-4」,「UTF-16」および「UTF-32」の数値データの扱いについては,「付録I.3 数値データの扱い」を参照してください。

    注※5

    「バイト長」ではなく「文字数」を指定してください。UTF-16のサロゲートペア文字は1文字として扱います。また,UnicodeのVS(Variation Selector,異体字セレクタ)は文字数に数えません。マルチバイト文字の扱いについては,「付録I.2 文字列データの扱い」を参照してください。

p [,s]

data-attributeに「z」を指定した場合に,非分割CSVデータの有効桁を10進数で指定します。

指定方法については,「5.16 -csvkeyパラメタ」の「-p[,s]」を参照してください。

ddateform

data-attributeに「g」を指定した場合に,非分割CSVデータの有効桁および書式番号を指定します。

指定方法については,「5.16 -csvkeyパラメタ」の「-ddateform」を参照してください。

−datedigit [,timedigit]

data-attributeに「h」を指定した場合に,非分割CSVデータの有効桁および書式番号を指定します。指定方法については,「5.16 -csvkeyパラメタ」の「−datedigit [,timedigit ]」を参照してください。

注意事項
  • 指定できる個数は,1〜64個です。

  • 次の例のように,属性によってはデータが異なっても同じ値として扱います。

    データ:「001」と「1」

    属性z:同じ値として扱います。

    属性c:同じ値として扱いません。

  • 非分割CSVデータを複数指定した場合,先に指定した非分割CSVデータほど優先順位が高く,あとに指定した非分割CSVデータほど優先順位が低くなります。

  • 非分割CSVテータの範囲は,ほかの非分割CSVデータと重なってもかまいません。

  • nosplitcsvdataオペランドは,CSVファイルを指定した場合だけ有効です。CSVファイル以外を指定した場合は,KBLS2061-Eエラーとなります。

  • レコード編集によって,入力レコードと異なった位置に非分割CSVデータを再編成するような場合は注意が必要となります。非分割CSVデータの範囲は,最後に実行したレコード編集後のレコードを基に指定してください。非分割CSVデータの位置は,「付録F レコード編集処理で基になるレコード(SORT EEの機能)」に示す規則に従って指定してください。

指定例
  1. 分割後のファイルに格納されるレコード件数が最大で10件となるように分割します。

    入力ファイル

     レコード件数:50件

    パラメタ指定例

     -splitdata recno=10

    分割後のファイル

     ファイル数:5個

     各ファイルのレコード件数:10件

  2. 分割後のファイルに格納されるレコード件数が最大で3件となるように分割します。ただし,レコードの先頭から4バイトの値(文字属性)が同じであれば分割しません。

    レコード件数:6件

    ファイルの内容:値はすべて文字

    [図データ]

    パラメタ指定例

     -splitdata recno=3 nosplitdata=c+0-4

    分割後のファイル

     ファイル数:2個

     ファイルの内容:1個目のファイル(レコード数は4件)

    [図データ]

     ファイルの内容:2個目のファイル(レコード数は2件)

    [図データ]

関連パラメタ
  • -splitfile

  • -splitkey

  • -splitinp

  • -splitout