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)