ソートマージ

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

5.32.4 csvformatオペランド

意味
入力ファイル形式がCSVの出力レコードフォーマットを定義します。
出力レコードの項目単位にcsvformatオペランドを指定します。
項目の詳細をサブオペランドで指定します。
【例】
出力レコードが項目1から項目3まである場合,csvformatオペランドは3個指定します。
項目1,項目2,項目3
csvformat=・・・・ 項目1の定義
csvformat=・・・・ 項目2の定義
csvformat=・・・・ 項目3の定義

形式
csvformat={  val{ (alias-name.csvfield-name)|(alias-name)|(insertdata) }
            |calc(calculation formula) }
          [△pos(position) ]
          [△len(length) ]
          [△rounding-method ]
          [△padding(C'padding-character'|X'hex-digit') ]
  • valまたはcalcのどちらかを必ず指定します。
  • pos,rounding-method,およびpaddingは省略できます。
  • calcを指定した場合,lenは必ず指定します。
  • val(別名)およびval(挿入データ)を指定した場合,lenは指定できません。
  • val(別名.フィールド名)でlenを省略した場合,挿入する長さは実セル長とします。
  • 1つのcsvformatオペランドは複数行にわたって記述できます。また,1行に複数のサブオペランドを指定できます。ただし,1つのサブオペランドは複数行にわたって記述できません。
  • csvformatオペランドをダブルクォーテーション(")で囲まないでください。
  • 挿入位置は,csvformatオペランド間で昇順となるように指定してください。昇順となっていない場合,KBLS2414-Eエラーとなります。

注意事項
  • 指定できるcsvformatオペランドの個数は,環境ファイル「EXS_CSVFORMATNUMMAX」で指定できます。環境ファイル「EXS_CSVFORMATNUMMAX」については,「15.1.1(30) EXS_CSVFORMATNUMMAX【SORT EE(64) 09-00以降】」を参照してください。
  • フォーマット機能の場合,フィールドデータの入力では,csvfieldに指定されたセルの長さは参照しません。入力の対象は指定されたセルの実セル長ととなります。
  • 指定したセルに対応するデータが入力されていない場合,NULLセルとして処理します。NULLセルの扱いについては,「付録D CSVファイル内のNULLセルの扱い(SORT EEの機能)」を参照してください。
  • 入力セルデータの桁調整については,「付録B CSVファイルのデータの扱い(SORT EEの機能)」を参照してください。
  • セルとセルの間のデリミタは必ず1文字を配置します。
  • 次のどちらかのオプションを指定した場合,連続したデリミタは1文字となります。
    ・入力レコードの連続したデリミタを1つのデリミタとして扱う「連続区切り文字オプション(INPCONSEPA)」
    ・レコード出力時に連続したデリミタを1つのデリミタに置き換える「連続区切り文字オプション(OUTCONSEPA)」
  • 配置するデリミタは次の順番で決定されます。なお,複数のデリミタを指定している場合は,先頭のデリミタが対象となります。
    1. -joinoutパラメタのcellsepaオペランドに指定したデリミタ
    2. 環境ファイルの「EXS_OUTCELLSEPA」に指定したデリミタ
    3. -joininpパラメタのcellsepaオペランドに指定したデリミタ
    4. 環境ファイルの「EXS_CELLSEPA」に指定したデリミタ
    5. コンマ
  • -joinoutパラメタのrecsepaオペランドに指定した改行文字を付加します。recsepaオペランドの指定を省略した場合は,-joininpパラメタのrecsepaオペランドの指定に従います。詳細は,「5.32.7 recsepaオペランド」を参照してください。
<この項の構成>
(1) valサブオペランド
(2) calcサブオペランド
(3) posサブオペランド
(4) lenサブオペランド
(5) 桁の丸め方式サブオペランド
(6) paddingサブオペランド

(1) valサブオペランド

意味
出力レコードへ挿入するフィールドや挿入データを指定します。

形式
val{ (alias-name.csvfield-name)|(alias-name)|(insertdata) }

指定値
valに指定する内容を次の表に示します。

表5-87 valに指定する内容

項目 指定値
(alias-name.csvfield-name) aliasオペランドで指定された別名が示すファイルから,csvfieldオペランドで指定されたフィールド名のフィールドデータを挿入します。
(alias-name) 1レコードを挿入します。
(insertdata) 指定されたデータを挿入します。
指定できるフィールド名の属性を次の表に示します。

表5-88 指定できるフィールド名の属性

指定できる属性 属性コード
文字 文字(JIS8単位コード) j
文字 c
文字(文字順序変更機能で指定した文字) q
文字(ワイド文字) w
文字(マルチバイト文字) u
文字(マルチバイト文字で,UnicodeのIVSに対応した属性) v
文字(左分離符号付き数字) d
10進数 数値(固定小数点数) z
日付 日付(英数字) g
日付時刻 日付時刻(数字) h

注※
データの形式については,「3.2 キー属性と形式」を参照してください。

挿入データの指定内容を次の表に示します。

表5-89 挿入データ指定内容

指定値 指定内容
C'文字列' 任意の文字列(改行文字は指定できません)
X'16進数' 「0〜9」,「A〜F」,「a〜f」の偶数桁の16進数

注意事項
  • 挿入文字データ(C'nn')の中にシングルクォーテーション(')または円記号(\)のどちらかを指定する場合は,選択条件式の文字条件値と同じように指定してください。選択条件式の書き方については,「4.5.3 選択条件式の書き方」を参照してください。
  • X'16進数'に改行コードおよびデリミタが指定された場合,引用符で囲んだ形式にして出力します。
  • C'文字列'にデリミタが指定された場合,引用符で囲んだ形式にして出力します。
  • 文字挿入データ「C'文字'」に日本語(マルチバイト文字)を含む場合,パラメタファイルに記述されたcode文で指定された文字コードから,入力ファイルパラメタのcodetypeに指定されたエンコードに変換し挿入します。エンコードに変換できなかった場合,KBLS2409-Eエラーとなります。
  • val(別名.フィールド名)指定で,lenが指定されなかった場合,挿入するデータの長さは実セル長にとなります。lenが指定された場合,入力したフィールドデータを正規化し,指定されたlenの長さ分挿入します。フィールドデータの正規化方法については「付録B CSVファイルのデータの扱い(SORT EEの機能)」および「付録J 日付時刻データの形式(SORT EEの機能)」を参照してください。lenの指定については「5.10.14(4) lenサブオペランド」を参照してください。

(2) calcサブオペランド

意味
計算式,および挿入する数値データを指定します。

形式
calc = { calculation formula | alias-name.csvfield-name | 数値 }

指定値
calcに指定する内容を次の表に示します。

表5-90 calcで指定できる内容

項目 指定値
calculation formula 指定された計算式の演算結果を挿入します。
alias-name.csvfield-name csvfieldオペランドで指定されたフィールド名のフィールドのデータを挿入します(10進数項目)。
数値 指定された数値データを挿入します(符号付き数値は,括弧で囲む)。
計算式に指定できる組み合わせを次の表に示します。

表5-91 計算式に指定できる組み合わせ

指定種類 指定例
10進数項目と10進数項目 10進数項目A + 10進数項目B
10進数項目と数値 10進数項目A * 100
数値と数値 100 * 0.25
100 * (-0.25)

注※
csvfieldオペランドで指定された数値(固定小数点数)のフィールド名を示します。
データの形式については,「3.2 キー属性と形式」を参照してください。

計算式に指定できる内容を次の表に示します。

表5-92 計算式で指定できる内容

指定内容 意味 指定最大
+(加算),-(減算),*(乗算),/(除算) 演算子 該当しない
「0〜9」の数字 数値データ 16個
( ),
({+|- } 「0〜9」の数字)
優先順位,符号付き数値 24ネスト
alias-name.csvfield-name csvfieldオペランドで指定された,10進数項目のフィールド名 16個

注※
レコード中の値を演算に使用する場合に指定します。

注意事項
  • 符号付き数字は()で囲みます。また,符号は数字の前に指定します。
    (例)(+3),(-3)
  • 0除算の場合はKBLS2424-Eエラーとなります。
  • 数値項目のデータに形式以外のデータ(数値以外)があった場合,KBLS2413-Eエラーとなります。
  • lenサブオペランドは必ず指定してください。
  • csvfieldオペランドで指定したフィールドのセル値が次に示す場合は,0(ゼロ)と扱います。
    ・空白(例 1,△△,222)
  • csvfieldオペランドで指定したフィールドのセル値が次に示す場合は,NULL値と扱います。
    ・NULLセル(空のセル)(例 1,,2)
    ・3列しかないレコードに対して4列目を指定
  • 計算式に指定されたフィールドの入力ではcsvfieldに指定された有効桁は参照しません。入力桁数は実セル長となります。入力したフィールドの有効桁が38桁を超えた場合,右側の桁あふれ部分を丸めて,有効桁数に調整されます。ただし,有効桁のうち,整数桁が38桁を超えた場合はKBLS2412-Eエラーとなります。丸め処理は入力ファイル情報パラメタのroundオペランドに指定された方式で行います。丸め方式については,「5.8.11 roundオペランド」を参照してください。
  • 演算結果を引用符で囲んだ形式で出力したい場合は,出力ファイルパラメタ(-outfileパラメタ,-joinoutパラメタ)のquottypeオペランドで引用符を付加するオプションコードを指定します。
  • 演算結果のセル出力書式を次に示します。
    [通貨記号][符号]数字[小数点][数字][符号]
    注※
     整数部の有効桁によっては,桁区切りのコンマが含まれます。
    書式についての説明を次の表に示します。

    表5-93 演算結果の出力書式

    書式 設定内容
    有効桁 lenで指定された有効桁に合わせます。
    • 小数部の桁を指定している場合は,小数点も付加されます。小数部の有効桁が指定されていない場合は,整数部だけです。
    • 整数部の有効桁が0桁の場合は,小数点「.」だけ付加します。
    通貨記号
    1. 計算式にフィールド指定がない場合
      通貨記号は付加しません。
    2. 計算式にフィールド指定がある場合
    計算式に通貨記号を含むフィールドが1 個でもあれば,通貨記号を付加します。
    通貨記号は左端に付加されます。
    符号
    1. 計算式に指定されたフィールドに符号が含まれている場合
      演算結果に符号が付加されます。
      付加される符号は,演算結果が負数の場合は「-」,負数以外は「+」です。
      符号の位置は,計算式に指定されたフィールドのうち,最初の符号付きの位置に合わせます。
      ・最初の符号付きの符号位置が左側の場合,符号の位置は整数部の左側です。
      ・最初の符号付きの符号位置が右側の場合,符号の位置は小数部の右側です。
    2. 計算式に指定されたフィールド名に符号が含まれていない場合
      演算結果に符号は付加されません。
      ただし,演算結果が負数になった場合,符号「-」が付加されます。
      符号の位置は整数部の左側です。
    桁区切り
    1. 計算式にフィールド指定がない場合
      桁区切りは付加しません。
    2. 計算式にフィールド指定がある場合
      計算式に桁区切り(コンマ)を含むフィールドが1個でもあれば,整数部に桁区切りを付加します。
      桁区切りは3桁ごとにコンマを付加します。
      桁区切り(コンマ)を含むフィールドが1個もなければ,桁区切りは付加しません。

(3) posサブオペランド

出力フィールドの出力位置を指定します。

詳細は,「5.10.15(3) posサブオペランド」を参照してください。

(4) lenサブオペランド

出力フィールドの長さを指定します。

詳細は,「5.10.15(4) lenサブオペランド」を参照してください。

(5) 桁の丸め方式サブオペランド

数値属性の入力フィールドに対する桁丸め(端数処理)方式を指定します。

詳細は,「5.10.15(5) 桁の丸め方式サブオペランド」を参照してください。

(6) paddingサブオペランド

文字属性の入力フィールドに対するパディング文字を指定します。

詳細は,「5.10.15(6) paddingサブオペランド」を参照してください。