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サブオペランド
- 意味
-
出力レコードへ挿入するフィールドや挿入データを指定します。
- 形式
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
挿入データの指定内容を次の表に示します。
表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)
計算式に指定できる内容を次の表に示します。
表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 個でもあれば,通貨記号を付加します。
通貨記号は左端に付加されます。
符号
-
計算式に指定されたフィールドに符号が含まれている場合
演算結果に符号が付加されます。
付加される符号は,演算結果が負数の場合は「-」,負数以外は「+」です。
符号の位置は,計算式に指定されたフィールドのうち,最初の符号付きの位置に合わせます。
・最初の符号付きの符号位置が左側の場合,符号の位置は整数部の左側です。
・最初の符号付きの符号位置が右側の場合,符号の位置は小数部の右側です。
-
計算式に指定されたフィールド名に符号が含まれていない場合
演算結果に符号は付加されません。
ただし,演算結果が負数になった場合,符号「-」が付加されます。
符号の位置は整数部の左側です。
桁区切り
-
計算式にフィールド指定がない場合
桁区切りは付加しません。
-
計算式にフィールド指定がある場合
計算式に桁区切り(コンマ)を含むフィールドが1個でもあれば,整数部に桁区切りを付加します。
桁区切りは3桁ごとにコンマを付加します。
桁区切り(コンマ)を含むフィールドが1個もなければ,桁区切りは付加しません。
-
-