ソートマージ
| 項目1,項目2,項目3 |
format={ val{ (field-name)|()|(insertdata) }
|calc(calculation formula) }
[△pos(position) ]
[△len(length) ]
[△rounding-method ]
[△padding(C'padding-character'|X'hex-digit') ]val{ (field-name)|()|(insertdata) }
表5-34 valに指定する内容
| 項番 | 項目 | 指定値 |
|---|---|---|
| 1 | (field-name) | fieldオペランドで指定されたフィールド名のフィールドのデータを挿入します。 |
| 2 | () | 1レコードを挿入します。 |
| 3 | (insertdata) | 指定されたデータを挿入します。 |
表5-35 指定できるフィールド名の属性
| 指定できる属性※1 | 属性コード | |
|---|---|---|
| 文字 | 文字(JIS8単位コード) | j |
| 文字 | c | |
| 文字(文字順序変更機能で指定した文字) | q | |
| 文字(ワイド文字)※2 | w | |
| 文字(マルチバイト文字)※2 | u | |
| 文字(マルチバイト文字で,UnicodeのIVSに対応した属性)※2 | v | |
| 文字(左分離符号付き数字) | d | |
| 2進数 | 符号付き固定小数点2進数 | n |
| 符号なし2進数(0から始まる整数) | m | |
| 内部浮動小数点 | f | |
| 10進数 | 内部10進数 | p |
| 外部10進数 | z | |
| 左符号付き外部10進数 | x | |
| 右分離符号付き外部10進数 | s | |
| 左分離符号付き外部10進数 | t | |
| 日付 | 日付(英数字) | g |
表5-36 挿入データ指定内容
| 指定値 | 指定内容 |
|---|---|
| C'文字列' | 任意の文字列(改行文字は指定できません) |
| X'16進数' | 「0〜9」,「A〜F」,「a〜f」の偶数桁の16進数 |
表5-37 フォーマットの挿入データ
| 項番 | len指定 | 比較 | フォーマットの挿入データ |
|---|---|---|---|
| 1 | なし | 実 > P | フィールドに指定された長さ分,データを挿入 |
| 2 | 実 < P+L | 実レコード長の範囲にあるデータだけ挿入 | |
| 3 | 実 < P | フィールドに指定された長さ分,パディング | |
| 4 | あり | 実 > P | lenで指定された長さ分,データを挿入 |
| 5 | 実 < P+L | 実レコード長の範囲にあるデータを挿入し,lenに足りない分はパディング | |
| 6 | 実 < P | lenで指定された長さ分,パディング |
図5-10 フォーマットの挿入データ
calc = { calculation formula | field-name | 数値 }指定値
calcに指定する内容を次の表に示します。
表5-38 calcで指定できる内容
| 項目 | 指定値 |
|---|---|
| calculation formula | 指定された計算式の演算結果を挿入します。 |
| field-name | fieldオペランドで指定されたフィールド名のフィールドのデータを挿入します(10進数項目) |
| 数値 | 指定された数値データを挿入します。 符号付き数値は,括弧で囲みます。 |
計算式に指定できる組み合わせを次の表に示します。
表5-39 計算式に指定できる組み合わせ
| 指定種類 | 指定例 |
|---|---|
| 10進数項目※と10進数項目 | 10進数項目A + 10進数項目B |
| 10進数項目と数値 | 10進数項目A * 100 |
| 数値と数値 | 100 * 0.25 100 * (-0.25) |
計算式に指定できる10進数項目を次の表に示します。
表5-40 計算式に指定できる10進数項目
| ファイル編成 | 10進数項目※ | 属性コード |
|---|---|---|
| 固定長順編成ファイル(S) テキストファイル(A) |
内部10進数 | p |
| 外部10進数 | z | |
| 左符号付き外部10進数 | x | |
| 右分離符号付き外部10進数 | s | |
| 左分離符号付き外部10進数 | t |
計算式に指定できる内容を次の表に示します。
表5-41 計算式に指定できる内容
| 項番 | 指定内容 | 意味 | 指定最大 |
|---|---|---|---|
| 1 | +(加算),-(減算),*(乗算),/(除算) | 演算子 | 該当しない |
| 2 | 「0〜9」の数値 | 数値データ | 16個 |
| 3 | ( ),({+|- } 「0〜9」の数値) | 優先順位,符号付き数値 | 24ネスト |
| 4 | フィールド名※ | fieldオペランドで指定された,10進数項目のフィールド名 | 16個 |
表5-42 挿入するフィールド属性の形式
| フィールド名指定 | 演算結果を挿入するフィールド属性 |
|---|---|
| あり | 入力レコードのフィールド属性の形式を継承 |
| なし | 外部10進数(z) |
pos(position)
表5-43 positionの指定範囲
| ファイル形式 | 最大レコード長は65,535バイト以下※2 | 最大レコード長は65,536バイト以上※3 | |||
|---|---|---|---|---|---|
| -locatajstパラメタ | -locatajstパラメタ | ||||
| 指定あり | 指定なし | 指定あり | 指定なし | ||
| 固定長順 | 1〜65,535 | 0〜65,534 | 1〜レコード長の上限値※4 | 0〜レコード長の上限値−1※4 | |
| テキスト※1 | 改行文字「LF」 | 1〜65,535 | 0〜65,534 | ||
| 改行文字「CRLF」 | 1〜65,534 | 0〜65,533 | |||
format=val(C'aaaaa') pos(0) format=val(C'bbbbb') pos(10)
format=val(C'aaaaa') pos(0) format=val(C'bbbbb') pos(3)
len(length)
指定値
出力フィールドの長さを5桁以内の数字で指定します。
指定する長さは,属性によってlenサブオペランドの形式と,lengthに指定できる範囲が異なります。
lenサブオペランドの形式と,lengthに指定できる長さを次の表に示します。
表5-44 lenサブオペランドの形式とlengthに指定できる長さ(単位)
| 挿入するデータの属性 | 形式 | 指定できる長さ | |
|---|---|---|---|
| 文字 | j,c,q,w※1 | len(バイト長) | 1〜4,096(バイト) |
| u,v | len(文字数) | 1〜4,096(文字数)※2 | |
| d | len(桁数) | 1〜256(桁)※3 | |
| 2進数 | m,n | len(バイト長) | 2,4,または8(バイト) |
| 10進数 | p | len(バイト長) | 1〜10(バイト) |
| z,x | len(総桁数[,小数桁]) | 総桁数:1〜18(桁)※3 小数桁:0〜総桁数(桁)※3 |
|
| s,t | len(総桁数[,小数桁]) | 総桁数:2〜19(桁)※3※4 小数桁:0〜総桁数(桁)※3※4 |
|
| 日付 | g | len(桁数) | 2〜8(桁)※5 |
表5-45 入力データ長と指定された有効桁数の大小関係
| len指定 | 挿入するデータ |
|---|---|
| 無 | フィールドで指定された開始位置から,フィールドで指定された長さのデータを挿入します。 |
| 有 |
|
-joininp alias=IN
field=Cdata:c+0-10
:
-joinout format=val(IN.Cdata) len(5) -joininp alias=IN
field=Cdata:c+5-3
:
-joinout format=val(IN.Cdata) len(7) padding(C'△')表5-46 10進数の意味
| 項番 | 総桁数 | 小数部桁数 | 10進数の意味 |
|---|---|---|---|
| 1 | 9 | 0 | 整数部9桁の「123456789」 |
| 2 | 9 | 9 | 小数部9桁の「.123456789」 |
| 3 | 9 | 3 | 整数部6桁小数部3桁の「123456.789」 |
| 4 | 9 | 8 | 整数部1桁小数部8桁の「1.23456789」 |
表5-47 小数部桁数の指定有無による小数部データ調整
| 入力データの小数部桁数指定 | lenの小数部桁数指定 | 小数部データ調整 |
|---|---|---|
| なし | なし | なし |
| なし | あり | 0を挿入します。次の図の【例1】を参照してください。 |
| あり | なし | なし |
| あり | あり | 入力データの小数部桁数(A)とlenの小数部桁数(B)の大小関係から挿入データを決定します。
|
表5-48 整数部データ調整
| 大小関係 | 整数部データ調整 |
|---|---|
| A ≧ B | 入力データの整数部右からB分挿入します。 次の図の【例1】,【例2】を参照してください。 |
| A < B | 入力データの整数部からA分挿入し,先頭桁に0を挿入します。 次の図の【例3】,【例4】を参照してください。 |
表5-49 桁の丸め方式
| 項番 | 指定値 | 丸め内容 |
|---|---|---|
| 1 | round | 有効小数部以下を四捨五入 |
| 2 | roundup | 有効小数部以下を切り上げ |
| 3 | truncate | 有効小数部以下を切り捨て |
表5-50 丸め対象の桁位置
| 項番 | 小数部 桁数指定 |
小数データ発生有無 | 小数部丸め |
|---|---|---|---|
| 1 | 無または0 | 無 | 丸めなし |
| 2 | 有 | 小数1桁目以降が丸め対象 | |
| 3 | 有 | 無 | 丸めなし |
| 4 | 有 | 指定小数部桁数(A)とデータ中の小数部桁数(B)の大小関係
|
注意事項
padding({ C'padding-character' | X'hex-digit' })表5-51 パディング文字
| 項番 | 指定値 | 挿入内容 |
|---|---|---|
| 1 | C'padding-character' | パディング文字として,任意の1文字(半角英数字)を指定します。 【指定例】padding(C'*') |
| 2 | X'hex-digit' | パディング文字として,任意の1バイトのデータを指定します。 【指定例】padding(X'ff') |
All Rights Reserved. Copyright (C) 2008, 2019, Hitachi, Ltd.