WRITE (新しいレコードの作成)

自由形式構文 WRITE{(E)} 名前 {データ構造}
コード 演算項目 1 演算項目 2 結果フィールド 標識
WRITE (E) 名前 (ファイルまたはレコード様式) データ構造 _ ER EOF

WRITE 命令は新しいレコードをファイルに書き出します。

名前オペランドは、ファイルまたはレコード様式の名前でなければなりません。 レコード様式名を使用できるのは、外部記述ファイルの場合だけです。プログラム記述ファイルの場合には、ファイル名が必要です。

データ構造オペランドが指定されている場合、レコードはデータ構造から直接ファイルに書き出されます。 名前が プログラム記述ファイル (ファイル仕様書の 22 桁目の F によって識別される) を参照する場合、 データ構造が必要であり、宣言されているファイルのレコード長と同じ長さの任意のデータ構造にすることができます。 名前 が外部記述ファイルのレコード様式を参照する場合、データ構造は EXTNAME(...:*OUTPUT) または LIKEREC(...:*OUTPUT) で定義されているデータ構造にする必要があります。 データ構造の定義方法、およびファイルとデータ構造の間でどのようにデータが転送されるかについては、ファイル命令を参照してください。

WRITE 例外 (ファイル状況コードが 1000 より大きい) を 処理するために、命令コード拡張 'E' またはエラー標識 ER を指定できますが、 両方を指定することはできません。 オーバーフローが外部記述印刷ファイルに達して、 ファイル仕様書にオーバーフロー標識が指定されていない場合には、エラーが発生します。 エラー処理の詳細については、ファイル例外/エラーを参照してください。

75-76 桁目に、WRITE 命令でファイルの終わりになった (サブファイルがいっぱいに なった) かどうかを知らせる標識を指定することができます。 この標識は WRITE 命令 が実行されるたびにオン (EOF 条件) またはオフに設定されます。この情報は %EOF 組み込み関数からも入手することができます。この関数 は、EOF 条件が発生した場合に '1' を戻します。それ以外の場合には '0' を戻します。

WRITE 命令を使用する場合には、次のことに留意してください。

ヌル値を含むヌル値可能フィールドを持つレコードの追加について は、データベースのヌル値サポートを参照してください。

詳細については、ファイル命令を参照してください。

図 366. WRITE 命令
*...1....+....2....+....3....+....4....+....5....+....6....+....7...+....
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
 *
 *  The WRITE operation writes the fields in the data structure
 *  DS1 to the file, FILE1.
 *
C                   WRITE     FILE1         DS1