REWRITE

目的

DIRECT UPDATE、SEQUENTIAL UPDATE、または KEYED SEQUENTIAL UPDATE ファイルのレコードを置き換えます。

構文

REWRITE FILE(f)[FROM(v)][KEY(k)];

パラメーター

f
置き換えるレコードを含むファイルへの参照。
v
指定されたレコードを書き換えるために値が使用される変数への参照。
k
書き換えるレコードの位置を特定するために使用されるキーを指定する式。

説明

REWRITE 文は、UPDATE ファイルのレコードを置き換えます。SEQUENTIAL UPDATE ファイルの場合、REWRITE 文は、ファイルから最後に読み取られたレコードを書き換えます。この場合、レコードが読み取られていないと書き換えられないことに注意してください。DIRECT UPDATE ファイル、および索引 (VSAM) ファイルに関連付けられた KEYED SEQUENTIAL UPDATE ファイルの場合は、先に読み取られているかどうかに関係なく、すべてのレコードを書き換えることができます。

REWRITE 文によって暗黙的に開かれたファイルに対して設定されるファイル属性のセットに DIRECT は含まれないため、FILE 指定子では、関連付けられたファイルが DIRECT 属性および UPDATE 属性で開かれているファイル値を参照する必要があります。

KEY オプションは、索引ファイル以外の DIRECT ファイルには必須であり、SEQUENTIAL ファイルには使用できません。

FROM 指定子には変数参照を含める必要があります。その変数の記憶域が新しいレコードとしてコピーされます。FROM 指定子に、非整列ビット文字列、全体が非整列ビット文字列で構成される構造体、または UNION 属性を持つ構造体を変数として含めることはできません。

FROM オプションの指定がない REWRITE 文は、最後に読み取られたレコードが INTO オプションを指定した READ 文で読み取られたレコードの場合は効果がありません。最後に読み取られたレコードが SET オプションを指定した READ 文で読み取られたレコードの場合は、READ の SET オプションで指定されたポインター変数で示されるバッファーの現在の内容でデータ レコードが更新されます。

指定子の FILE、FROM、および KEY は任意の順序で記述できます。

REWRITE FILE(F) FROM(X) KEY(N+1); 
REWRITE FILE(F) FROM(Y(K)) KEY('ABC');

制約事項

なし。