WRITE WORK [FILE ] work-file-number [VARIABLE ] operand1 |
このドキュメントでは、次のトピックについて説明します。
構文図で使用されている記号については、「構文記号」を参照してください。
関連ステートメント:DEFINE WORK
FILE
| READ WORK
FILE
| CLOSE WORK
FILE
| DOWNLOAD PC FILE
関連機能グループ:ワークファイル/PC ファイルの制御
WRITE WORK FILE
ステートメントは、物理順ワークファイルにレコードを書き込むために使用します。
1 つのプログラム内または処理ループ内でワークファイルを作成し、そのファイルを後続の別の処理ループまたはプログラムで READ WORK
FILE
ステートメントを使用して読み取ることもできます。
注意:
Unicode およびコードページのサポートについては、『Unicode およびコードページのサポート』ドキュメントの「Windows、UNIX、および OpenVMS プラットフォーム上のワークファイルと出力ファイル」を参照してください。
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | オペランド参照 | ダイナミック定義 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 |
C | S | A | G | N | 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-COMPRESSED では、最大フィールド/レコード長が 32766 バイトのダイナミック変数およびラージ変数を処理できます。
|
|
ワークファイルタイプ SAG (バイナリ)では、ダイナミック変数は処理できず、エラーが生成されます。ただし、最大フィールド/レコード長が 32766 バイトのラージ変数は処理できます。
|
|
ワークファイルタイプ TRANSFER では、最大フィールド/レコード長が 32766 バイトのダイナミック変数を処理できます。ワークファイルタイプ ENTIRECONNECTION では、ダイナミック変数は処理できません。ただし、どちらのタイプでも、最大フィールド/レコード長が 1073741824 バイトのラージ変数を処理できます。
|
|
2 つのワークファイルタイプ ワークファイルタイプ
|
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