ソートマージ

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

5.17 -csvsumパラメタ

意味
CSVファイルの集約項目を指定します。
このパラメタは,CSVファイルを指定した場合だけ有効です。CSVファイル以外を指定した場合は,KBLS1213-Eエラーとなります。

形式
-csvsum [△csv-field-definition [△csv-field-definition … ] ]
  • -csvsumパラメタを指定する場合は,-csvkeyパラメタを必ず指定してください。
  • -function copyと組み合わせて指定する場合,入力ファイルはあらかじめ集約キーでソートしておく必要があります。ソートしていない場合は,集約の結果は保証されません。
  • -function copyと組み合わせる場合,入力ファイルは1つだけ指定してください。
  • このパラメタに指定したセルに対応するデータが入力されなかった場合,ナル文字列として処理します。ナル文字列の扱いについては,「付録D CSVファイル内のナル文字列の扱い(SORT EEの機能)」を参照してください。
  • -csvkeyパラメタに指定したセル番号を,-csvsumパラメタに指定しないでください。
  • 環境ファイル「EXS_CSVSUMNUMMAX」の「最大個数の倍数」を指定していない場合,指定できる集約項目の個数は0〜128個です。集約項目の最大個数は「128×n個」の単位で,1,280個(128×10)まで拡張できます。129個以上の集約項目を指定したい場合は,環境ファイル「EXS_CSVSUMNUMMAX」の「最大個数の倍数」に,「128×n個」のnの値を指定してください。
  • 環境ファイル「EXS_CSVSUMNUMMAX」の「合計長の上限の倍数」を指定していない場合,指定できる集約項目の合計長は4,096バイトです。集約項目の合計長は「4,096×mバイト」の単位で,65,536バイト(4,096×16)まで拡張できます。4,097バイト以上の合計長を指定したい場合は,環境ファイル「EXS_CSVSUMNUMMAX」の「合計長の上限の倍数」に,「4,096×mバイト」のm値を指定してください。
  • 集約項目を指定しない場合(集約項目の個数が0個),同じキーを持つ連続したレコードがあるときは,最初に配置されているレコードだけを抽出します。これを無条件レコード抽出機能といいます。
csv-field-definitionの形式
field-attributecellposp[,s] [△field-attributecellposp[,s] … ]
  • 数値データ(固定小数点数)のセルを定義します。
  • field-attributeには,「z」だけを指定できます。
  • field-attributecellposp[,s]は必ず続けて指定してください。それぞれの値の間に空白やタブを指定しないでください。
  • field-attributecellposp[,s]を複数指定する場合は,1個以上の空白またはタブで区切って指定します。

指定値
field-attribute
集約項目の属性を指定します。
z:集約項目が固定小数点数であることを指定します。
cellpos
レコード内の処理対象セル(列)の位置を,番号で指定します。
レコードの先頭セル番号を「1」,最大セル番号を「n」とし,1〜nまでの番号を指定します。最大セル番号は,16,384番となります。
p [,s]
固定小数点データの有効桁を10進数で指定します。
  • p(precision:精度)は,固定小数点データの総桁数を表します。pからsを引いた桁が整数部の有効桁となります。
  • pに指定できる桁の範囲は,1〜38桁です。
  • s(scale:位)は,固定小数点データの小数部(小数点以下)の有効桁を表します。
  • sに指定できる桁の範囲は,0〜p桁です(0≦sp)。
  • sを省略した場合は,0(小数部なし)を仮定します。
  • データ中の引用符囲み,符号,通貨記号,桁修飾文字(コンマ,小数点,空白)は,有効桁に含みません。

注意事項
  • すべて空白文字の集約項目は,0(ゼロ)として扱います。ただし,集約した範囲(オーバーフローが発生する前まで)のすべての集約項目が空白だった場合は,集約結果も空白で出力します。
    【例】
    -csvsum z+2-4を指定した場合(2セル目を有効桁4桁(小数以下0桁)で集約項目として指定)

    [図データ]

  • ナル文字列(空のセル)の集約項目は,0(ゼロ)として扱います。ただし,集約した範囲(オーバーフローが発生する前まで)のすべての集約項目がナル文字列だった場合は,集約結果もナル文字列で出力します。詳細は,「付録D CSVファイル内のナル文字列の扱い(SORT EEの機能)」を参照してください。
  • ナル文字列を集約対象としたくない場合は,コマンドオプション「SUMNONUL」を指定してください。SUMNONULオプションを指定すると,ナル文字列は集約されずに1個のレコードで出力します。SUMNONULオプションについては,「5.5.19 ナル文字列の集約オプション(SUMNULKEY,SUMNONULLオプション)」を参照してください。
  • ナル文字列(空のセル)の集約キーは同値として集約します。ナル文字列を同値として扱いたくない場合は,コマンドオプション「SUMKEYNUL」を指定してください。SUMKEYNULオプションを指定すると,ナル文字列キーの集約項目は集約されず,1個のレコードで出力されます。SUMKEYNULオプションについては,「5.5.19 ナル文字列の集約オプション(SUMNULKEY,SUMNONULLオプション)」を参照してください。
  • 入力データの桁あふれはオーバーフローと判定されます。例えば,有効桁数が5桁,小数部2桁と指定した場合,最小値は「-999.99」,最大値は「+999.99」です。この指定に対して,入力データが「1000」や「-999.999」など,整数部または小数部が桁あふれしていればオーバーフローとなります。
  • 入力データが桁あふれしていなければ,丸め処理をします。丸め処理の結果,整数部が桁あふれした場合はオーバーフローとなります。丸め方法は,環境ファイルの「EXS_ROUND」または-inpfile,-catinp,-splitinpパラメタのroundオペランドに指定した方法を適用します。丸め方法の詳細については,「5.8.11 roundオペランド」を参照してください。
  • 指定された有効桁よりも大きい桁の入力データを検出した場合,KBLS1012-Iインフォメーションメッセージを出力して正常終了します。KBLS1012-Iが出力された場合は,-csvsumに指定した有効桁を見直してください。
  • 入力データの丸め処理でオーバーフローを検出した場合,KBLS1013-Iインフォメーションメッセージを出力して正常終了します。KBLS1013-Iが出力された場合は,-csvsumに指定した有効桁と,roundオペランドに指定した丸め方式を見直してください。
  • 集約した結果のセルの書式は,次に示す書式に合わせて出力します。
    [通貨記号][符号]数字[小数点][数字][符号]
    注※ 整数部の有効桁によっては,桁区切りのコンマが含まれます。
    書式 説明
    有効桁 指定された有効桁に合わせます。
    • 小数部の桁を指定している場合は,小数点も付加されます。小数部の有効桁が指定されていない場合(s=0)は,整数部だけです。
    • 整数部の有効桁が指定されていない場合(p-s=0)は,整数部は必ず「0.」とします。
    通貨記号 集約した範囲(オーバーフローが発生する前まで)のすべての集約項目に通貨記号が含まれている場合,通貨記号を付加します。通貨記号は,左端に付加されます。
    符号位置 集約した範囲(オーバーフローが発生する前まで)の集約項目のうち,最初の符号付きの位置に合わせます。
    • 最初の符号付きの符号位置が左側の場合,符号の位置は整数部の左側です。
    • 最初の符号付きの符号位置が右側の場合,符号の位置は小数部の右側です。
    符号 集約した範囲(オーバーフローが発生する前まで)の集約項目のうち,「+」の符号が含まれている集約項目が1個でもあれば,正値の集約結果に「+」を付加します。
    「+」の符号を含む集約項目が1個もなければ,符号は付加しません。
    また,集約結果が負値の場合は,「-」を付加します。
    桁区切り 集約した範囲(オーバーフローが発生する前まで)の集約項目のうち,桁区切り(コンマ)が含まれている集約項目が1個でもあれば,整数部に桁区切りを付加します。
    桁区切りは,3桁ごとにコンマを付加します。
    桁区切り(コンマ)を含む集約項目が1個もなければ,桁区切りは付加しません。
  • 集約した結果を引用符で囲んだ形式で出力したい場合は,-outfile,-catoutおよび-splitoutパラメタのquottypeオペランドで引用符を付加する指定をしてください。quottypeオペランドについては,「5.10.8 quottypeオペランド」を参照してください。
  • 同じキーを持つ連続したレコードのうち,最初に配置されているレコードを基に集約レコードを作成して出力します。SUMNONULLオプションの指定がなく,かつ最初に配置されているレコードに集約項目のセルがない場合,集約項目のセルが付加されます。また,元のレコードの最後のセルと集約項目のセルの間に間隔が生じる場合には,ナル文字列のセルが作成されます。
    【例1】SUMNONULLオプション指定なし
    集約キー:c+1-5(セル1)
    集約項目:z+4-4(セル4)

    [図データ]

    【例2】SUMNONULLオプション指定あり
    集約キー:c+1-5(セル1)
    集約項目:z+4-4(セル4)

    [図データ]

  • 入力レコードの連続区切り文字オプション(INPCONSEPA)だけが指定されている場合,作成されるナル文字列は,引用符で囲んだ形式となります。出力レコードの連続区切り文字オプション(OUTCONSEPA)の指定がある,またはINPCONSEPAとOUTCONSEPAの両方の指定がない場合は,ナル文字列を引用符で囲みません。

関連パラメタ・オペランド
  • -csvkeyパラメタ
  • -cmdoptパラメタ SUMNULKEY,SUMNONULオペランド
  • -cmdoptパラメタ INPCONSEPA,OUTCONSEPAオペランド
  • -inpfileパラメタ roundオペランド
  • -outfileパラメタ quottypeオペランド