ITOZ - 数値をゾーン 10 進数フォーマットに変換
ITOZ 関数は、数値フォーマット内の数をゾーン 10 進数フォーマットに変換します。リクエストはゾーン 10 進数を処理することはできませんが、ゾーン 10 進数フィールドを抽出ファイルに書き込み、外部プログラムで使用することができます。
数値をゾーン 10 進数フォーマットに変換
ITOZ(length, in_value, output)
length
整数
in_value の長さをバイト数で指定します。最大バイト数は 15 です。末尾バイトには、符号が含まれます。
in_value
数値
変換する数値です。数値を含むフィールドを指定することもできます。数値は変換前に切り捨てられて整数になります。
output
文字
結果を格納するフィールド名、または出力フォーマットです。フォーマットは一重引用符 (') で囲みます。
数値をゾーン 10 進数フォーマットに変換
次のリクエストは、従業員 ID と給与情報を含む抽出ファイルを作成します。このファイルは、COBOL プログラム用にゾーン 10 進数フォーマットで作成されます。
DEFINE FILE EMPLOYEE ZONE_SAL/A8 = ITOZ(8, CURR_SAL, ZONE_SAL); END
TABLE FILE EMPLOYEE PRINT CURR_SAL ZONE_SAL BY EMP_ID ON TABLE SAVE AS SALARIES END
結果の抽出ファイルは次のとおりです。
NUMBER OF RECORDS IN TABLE= 12 LINES= 12 ALPHANUMERIC RECORD NAMED SALARIES FIELDNAME ALIAS FORMAT LENGTH EMP_ID EID A9 9 CURR_SAL CSAL D12.2M 12 ZONE_SAL A8 8 TOTAL 29
NUMBER OF RECORDS IN TABLE= 12 LINES= 12 [EBCDIC|ALPHANUMERIC] RECORD NAMED SALARIES FIELDNAME ALIAS FORMAT LENGTH EMP_ID EID A9 9 CURR_SAL CSAL D12.2M 12 ZONE_SAL A8 8 TOTAL 29 DCB USED WITH FILE SALARIES IS DCB=(RECFM=FB,LRECL=00029,BLKSIZE=00580)
SAVE コマンドを削除してリクエストを実行すると、EBCDIC プラットフォームの出力結果は次のようになります。EBCDIC の左中括弧 ({) は 16 進数で C0 です。これは、正の符号および最終桁 0 (ゼロ) を示します。EBCDIC の大文字の B は 16 進数で C2 です。これは正の符号および最終桁 2 を示します。
EMP_ID URR_SAL ZONE_SAL ------ -------- -------- 071382660 $11,000.00 0001100{ 112847612 $13,200.00 0001320{ 117593129 $18,480.00 0001848{ 119265415 $9,500.00 0000950{ 119329144 $29,700.00 0002970{ 123764317 $26,862.00 0002686B 126724188 $21,120.00 0002112{ 219984371 $18,480.00 0001848{ 326179357 $21,780.00 0002178{ 451123478 $16,100.00 0001610{ 543729165 $9,000.00 0000900{ 818692173 $27,062.00 0002706B