+----------------------------------IBM 拡張----------------------------------+
REWRITE ステートメントは、すでにサブファイル内に存在するサブファイル・レコードを置き換える場合に使用されます。
REWRITE ステートメント - 形式 2 - トランザクション (サブファイル) >>-REWRITE SUBFILE--レコード名-1--+------------+----------------> '-FROM--ID-1-' >--+------------------------------+-----------------------------> '-FORMAT-+----+-+-ID-2-------+-' '-IS-' '-リテラル-1-' >--+--------------------------------+---------------------------> '-TERMINAL-+----+-+-ID-3-------+-' '-IS-' '-リテラル-2-' >--+-----------------------------+------------------------------> '-+-INDICATOR--+-+-----+-ID-4-' +-INDICATORS-+ +-IS--+ '-INDIC------' '-ARE-' >--+----------------------------------------+-------------------> '-INVALID--+-----+--命令ステートメント-1-' '-KEY-' >--+--------------------------------------------+---------------> '-NOT INVALID--+-----+--命令ステートメント-2-' '-KEY-' >--+-------------+--------------------------------------------->< '-END-REWRITE-'
レコード名-1 によって参照されるレコードの文字桁数は、置き換えられるレコードの文字桁数と等しくなければなりません。 再書き込み操作に先立って、レコードの読み取り操作を正常に実行しなければなりません。 サブファイル内の置き換えられるレコードは、直前の読み取り操作でアクセスされたレコードです。
注:
リテラル-2 または ID-3 は、有効なプログラム装置名でなければなりません。 リテラル-2 を指定する場合には、10 文字以下の非数字にしなければなりません。 ID-3 を指定する場合は、10 文字以下の英数字データ項目を参照しなければなりません。
複数のプログラム装置を獲得しているトランザクション・ファイルから TERMINAL 句が省略された場合、使用されるサブファイルは、 そのトランザクション・ファイルの READ が試みられた最後のプログラム装置に関連付けられているサブファイルです。
REWRITE ステートメントを通信装置に対して使用することはできません。 REWRITE ステートメントを通信装置に対して使用すると、操作が失敗し、ファイル状況が 90 に設定されます。
INDICATORS 句の詳細は、「WebSphere Development Studio: ILE COBOL プログラマーの手引き」の『トランザクション・ファイルに関する標識の使用』を参照してください。
ID-4 は、OCCURS 文節なしで指定された基本ブール・データ項目か、または基本データ・ブールの項目が従属しているグループ項目でなければなりません。
該当する USE プロシージャーが指定されていないファイルについては、INVALID KEY 句を指定しなければなりません。 INVALID KEY 句が指定されておらず、USE プロシージャーも指定されていない場合は、望ましくない結果が生じることがあります。
+------------------------------End of IBM 拡張-------------------------------+