ソートマージ

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

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