REWRITE ステートメント - 形式 1 >>-REWRITE--レコード名-1--+------------+------------------------> '-FROM--ID-1-' >--+-----------------------------------+------------------------> | (1) | '-FORMAT------+----+-+-ID-2-------+-' '-IS-' '-リテラル-1-' >--+---------------------------------+--------------------------> | (1) | '-NULL-KEY-MAP-------+----+--ID-5-' '-IS-' >--+-----------------------------+------------------------------> | (1) | '-NULL-MAP-------+----+--ID-6-' '-IS-' >--+----------------------------------------+-------------------> '-INVALID--+-----+--命令ステートメント-1-' '-KEY-' >--+--------------------------------------------+---------------> '-NOT INVALID--+-----+--命令ステートメント-2-' '-KEY-' >--+-------------+--------------------------------------------->< '-END-REWRITE-'
注:
MOVE identifier-1 TO record-name-1. REWRITE record-name-1.
REWRITE ステートメントの処理が成功すると、 現行レコードはレコード名-1 では使用可能でなくなりますが、ID-1 ではまだ使用可能です。 レコード名-1 と ID-1 の両方で同じ記憶域を参照してはなりません。
+----------------------------------IBM 拡張----------------------------------+
FORMAT 句で指定する値には、この入出力操作で使用するレコード形式の名前が入ります。 システムはこれを使用して、どのレコード形式に対して操作を行うかを指定または選択します。
ID-2 を指定する場合には、10 文字以下の英数字データ項目にしなければなりません。
リテラル-1 を指定する場合は、10 文字以下の大文字の文字ストリングにしなければなりません。
FORMAT 句を指定せずに、ランダム・アクセス・モードで索引付きファイルにアク セスする場合には、定義された最初の形式が使用されます。
全桁がブランクの値は、FORMAT 句が指定されなかった場合と同じ扱いになります。 その値がファイルに対して有効でない場合は、9K の FILE STATUS が戻され、(そのファイルに適用可能であれば) USE プロシージャーが呼び出されます。
+------------------------------End of IBM 拡張-------------------------------+
INVALID KEY 条件が発生した場合、更新操作は行われません。 レコード名の中のデータは影響を受けません。 この句は、必要に応じて、対応する命令ステートメントに制御権を移動します。
レコード名-1 について適用可能な EXCEPTION/ERROR プロシージャーが指定されていない場合は、INVALID KEY 句を指定しなければなりません。
次のいずれかの場合に、INVALID KEY 条件が発生します。
適用可能な USE プロシージャーが指定されていないファイルに対しては、INVALID KEY 句を指定しなければなりません。
詳細は 共通の処理機能の『INVALID KEY 条件』を参照してください。
装置タイプ DISK 上の順次にアクセスされる索引付きファイルの場合、 この句は、置き換えられるレコードの RECORD KEY に含まれる値が、ファイルの最後に検出されたレコードの RECORD KEY データ項目と等しくない場合に処理されます。