WRITE WORK [FILE ] work-file-number [VARIABLE ] operand1
|
このドキュメントでは、次のトピックについて説明します。
構文図で使用されている記号については、「構文記号」を参照してください。
関連ステートメント:DEFINE WORK FILE | READ WORK FILE | CLOSE WORK FILE
関連機能グループ:「ワークファイル/PC ファイルの制御」
WRITE WORK FILE
ステートメントは、物理順ワークファイルにレコードを書き込むために使用します。
このステートメントはバッチモードでのみ使用できます。
1 つのプログラム内または処理ループ内でワークファイルを作成し、そのファイルを後続の別の処理ループまたはプログラムで READ WORK FILE
ステートメントを使用して読み取ることもできます。
注意:
Unicode およびコードページのサポートについては、『Unicode およびコードページのサポート』ドキュメントの「Windows、UNIX、および OpenVMS プラットフォーム上のワークファイルと出力ファイル」を参照してください。
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | ステートメント参照 | ダイナミック定義 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | C | S | A | G | A | U | N | P | I | F | B | D | T | L | C | G | 可 | 不可 |
注意:
ワークファイルタイプ ENTIRECONNECTION または TRANSFER を使用しているとき、operand1 のフォーマットを 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 に拡張されます)。 これにより、ワークファイルを読み取るときに注意する必要があります。
ワークファイルタイプ | 処理 |
---|---|
ASCII |
ワークファイルタイプ ASCII、ASCII-COMPRESSED、および SAG(バイナリ)では、ダイナミック変数は処理できず、エラーが生成されます。 ただし、最大フィールド/レコード長が 32766 バイトのラージ変数は処理できます。 |
ワークファイルタイプ ENTIRE CONNECTION では、ダイナミック変数は処理できません。 ただし、このタイプでは、最大フィールド/レコード長が 1073741824 バイトのラージ変数を処理できます。 | |
2 つのワークファイルタイプ PORTABLE と UNFORMATTED を使用して、ラージおよびダイナミック変数をワークファイルに書き込んだりワークファイルから読み取ったりできます。 これらのタイプには、ダイナミック変数に対するサイズ制限がありません。 ただし、ラージ変数は最大フィールド/レコード長の 32766 バイトを超えることはできません。 ワークファイルタイプ PORTABLE の場合は、フィールド情報がワークファイル内に保存されます。 レコード内のフィールドサイズが現在のサイズと異なる場合は、ダイナミック変数は
|
|
CSV | ダイナミックおよびラージ変数の最大フィールド/レコード長は 32766 バイトです。 ダイナミック変数がサポートされます。 X-array は許可されていないので、エラーメッセージが表示されます。 |
** 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