PCKOUT - 指定した長さでパック 10 進数を書き込み
PCKOUT 関数は、抽出ファイルに指定した長さでパック 10 進数を書き込みます。リクエストが抽出ファイルにパック 10 進数を保存する際、フォーマットの指定に関わらず、通常 8 バイトまたは 16 バイトのフィールドとして書き込みます。PCKOUT を使用することで、フィールドを 1 から 16 バイトの指定した長さに変更することができます。
指定した長さでパック 10 進数を書き込み
PCKOUT(in_value, length, output)
in_value
数値
値を含む入力フィールドを指定することもできます。パック 10 進数、整数、単精度浮動小数点数、倍精度浮動小数点数フォーマットが使用できます。整数フォーマット以外の場合、端数処理により、値は最も近い整数になります。
length
数値
出力値の長さを 1 から 16 までのバイト数で指定します。
output
文字
結果を格納するフィールド名、または出力フォーマットです。フォーマットは一重引用符 (') で囲みます。フィールドにパック 10 進数データが格納されている場合でも、この関数はフィールドを文字として返します。
指定した長さでパック 10 進数を書き込み
PCKOUT 関数は、CURR_SAL フィールドを 5 バイトのパック 10 進数フィールドに変換し、結果を SHORT_SAL に格納します。
DEFINE FILE EMPLOYEE SHORT_SAL/A5 = PCKOUT(CURR_SAL, 5, SHORT_SAL); END TABLE FILE EMPLOYEE PRINT LAST_NAME SHORT_SAL HIRE_DATE ON TABLE SAVE END
結果の抽出ファイルは次のとおりです。
NUMBER OF RECORDS IN TABLE= 12 LINES= 12 ALPHANUMERIC RECORD NAMED SAVE FIELDNAME ALIAS FORMAT LENGTH LAST_NAME LN A15 15 SHORT_SAL A5 5 HIRE_DATE HDT I6YMD 6 TOTAL 26
> NUMBER OF RECORDS IN TABLE= 12 LINES= 12 [EBCDIC|ALPHANUMERIC] RECORD NAMED SAVE FIELDNAME ALIAS FORMAT LENGTH LAST_NAME LN A15 15 SHORT_SAL A5 5 HIRE_DATE HDT I6YMD 6 TOTAL 26 DCB USED WITH FILE SAVE IS DCB=(RECFM=FB,LRECL=00026,BLKSIZE=00520)