ソートマージ
![[目次]](FIGURE/CONTENT.GIF)
![[用語]](FIGURE/GLOSS.GIF)
![[索引]](FIGURE/INDEX.GIF)
![[前へ]](FIGURE/FRONT.GIF)
- 意味
- 入力ファイル形式がCSVの出力レコードフォーマットを定義します。
- 出力レコードの項目単位にcsvformatオペランドを指定します。
- 項目の詳細をサブオペランドで指定します。
- 【例】
- 出力レコードが項目1から項目3まである場合,csvformatオペランドは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サブオペランド
- 意味
- 出力レコードへ挿入するフィールドや挿入データを指定します。
- 形式
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サブオペランド」を参照してください。
- 意味
- 計算式,および挿入する数値データを指定します。
- 形式
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 個でもあれば,通貨記号を付加します。
通貨記号は左端に付加されます。 |
| 符号 |
- 計算式に指定されたフィールドに符号が含まれている場合
演算結果に符号が付加されます。
付加される符号は,演算結果が負数の場合は「-」,負数以外は「+」です。
符号の位置は,計算式に指定されたフィールドのうち,最初の符号付きの位置に合わせます。
・最初の符号付きの符号位置が左側の場合,符号の位置は整数部の左側です。
・最初の符号付きの符号位置が右側の場合,符号の位置は小数部の右側です。
- 計算式に指定されたフィールド名に符号が含まれていない場合
演算結果に符号は付加されません。
ただし,演算結果が負数になった場合,符号「-」が付加されます。
符号の位置は整数部の左側です。
|
| 桁区切り |
- 計算式にフィールド指定がない場合
桁区切りは付加しません。
- 計算式にフィールド指定がある場合
計算式に桁区切り(コンマ)を含むフィールドが1個でもあれば,整数部に桁区切りを付加します。
桁区切りは3桁ごとにコンマを付加します。
桁区切り(コンマ)を含むフィールドが1個もなければ,桁区切りは付加しません。
|
All Rights Reserved. Copyright (C) 2008, 2019, Hitachi, Ltd.