WRITE WORK [FILE ] work-file-number [VARIABLE ] operand1
|
このドキュメントでは、次のトピックについて説明します。
構文図で使用されている記号については、「構文記号」を参照してください。
関連ステートメント:DEFINE WORK FILE | READ WORK FILE | CLOSE WORK FILE| DOWNLOAD PC FILE
関連機能グループ:「ワークファイル/PC ファイルの制御」
WRITE WORK FILE
ステートメントは、物理順ワークファイルにレコードを書き込むために使用します。
このステートメントは、Com-plete、CICS、CMS、TSO、TIAM、またはバッチモード環境で実行されるプログラムでのみ使用できます。 適切な JCL またはシステムコマンドを実行してワークファイルを割り当てる必要があります。 詳細については、『オペレーション』ドキュメントを参照してください。 ワークファイル割り当ての詳細については、『パラメータリファレンス』ドキュメントでプロファイルパラメータ WORK
を参照してください。
1 つのプログラム内または処理ループ内でワークファイルを作成し、そのファイルを後続の別の処理ループまたはプログラムで READ WORK FILE
ステートメントを使用して読み取ることもできます。
注意:
Unicode およびコードページのサポートについては、『Unicode およびコードページのサポート』ドキュメントの「メインフレームプラットフォーム上のワークファイルと出力ファイル」を参照してください。
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | ステートメント参照 | ダイナミック定義 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | C | S | A | G | A | U | N | P | I | F | B | D | T | L | C | G | 可 | 不可 |
注意:
Natural Connection ではフォーマット C もフォーマット G も使用できません。
構文要素の説明:
WRITE WORK FILE
ステートメントで書き込まれるフィールドは、その内部定義に従って外部ファイルに表示されます。 フィールド値は編集されません。
A および B フォーマットのフィールドについては、外部ファイルでのバイト数は、Natural プログラムで定義された内部長さ定義と同じです。 値は編集されず、小数点は表示されません。
N フォーマットのフィールドについては、外部ファイルでのバイト数は、小数点の前後の内部桁数の合計です。 小数点は外部ファイルには表示されません。
P フォーマットのフィールドについては、外部ファイルでのバイト数は、小数点の前後の桁数の合計に 1(符号用)を加算し、それを 2 で割ってバイト単位に切り上げたものです。
注意:
フォーマット変換は、ワークファイルに書き込まれるフィールドに対しては行われません。
フィールド表現の例:
フィールド定義 | 出力レコード |
---|---|
#FIELD1 (A10) | 10 バイト |
#FIELD2 (B15) | 15 バイト |
#FIELD3 (N1.3) | 4 バイト |
#FIELD4 (N0.7) | 7 バイト |
#FIELD5 (P1.2) | 2 バイト |
#FIELD6 (P6.0) | 4 バイト |
注意:
数値フィールド(フォーマット N または P)に対する Natural システム関数 AVER
、NAVER
、SUM
、または TOTAL
をワークファイルに書き込むとき、これらのフィールドの内部長は 1 桁拡張されます(例:フォーマット P3 のフィールドの SUM
は P4 に拡張されます)。 これにより、ワークファイルを読み取るときに注意する必要があります。
ワークファイルタイプ | 処理 |
---|---|
UNFORMATTED | ワークファイルタイプ UNFORMATTED は、最大レコード長を超えるサイズの変数を書き込むために使用できます。 「ラージ変数およびダイナミック変数によるワークファイルへのアクセス」も参照してください。 |
FORMATTED | ダイナミック変数は現在定義されている長さ(長さ 0 を含む)で書き込まれます。 |
** Example 'WWFEX1': WRITE WORK FILE ************************************************************************ DEFINE DATA LOCAL 1 EMPLOY-VIEW VIEW OF EMPLOYEES 2 PERSONNEL-ID 2 NAME END-DEFINE * FIND EMPLOY-VIEW WITH CITY = 'LONDON' WRITE WORK FILE 1 PERSONNEL-ID NAME END-FIND * END