ランダムおよび動的の各アクセス・モードにおいては、DELETE ステートメントを使用した結果はファイル編成により異なってきます。
これが相対ファイルであれば、システムは RELATIVE KEY データ項目の内容により識別されるレコードを論理的に除去します。 同じ RELATIVE KEY の値をもった新規レコード用に空間を入手できます。 ファイルに当該レコードがない場合には、INVALID KEY 条件が発生します。
索引付きファイルにおいては、システムは RECORD KEY データ項目の内容により識別されるレコードを論理的に除去します。 ファイルに当該レコードがない場合には、INVALID KEY 条件が発生します。
+----------------------------------IBM 拡張----------------------------------+
ファイルに EXTERNALLY-DESCRIBED-KEY が指定されている場合、FORMAT 句によって指定された形式のレコード域 2 の中のキー・フィールドを使用して、削除すべきレコードを見つけます。 FORMAT 句が指定されていない場合、ファイルに対してプログラム定義された最初の形式を使用して、削除すべきレコードを見つけます。
+------------------------------End of IBM 拡張-------------------------------+
+----------------------------------IBM 拡張----------------------------------+
ファイルに対してこの句が指定されていた場合、DELETE ステートメントの実行に先立ってこのファイルに対して処理された最後の入出力ステートメントは、NO LOCK 句なしの READ ステートメントであり、 しかも、正常に実行されていなければなりません。
そのステートメントによって読み取られたレコードが、 削除されるレコードです。
この場合、FORMAT 句は、削除すべきレコードを見つけるためには使用されません。 重複がある場合には、適切なレコードが削除されないようにするために、READ ステートメントが必要になります。
削除操作の前に READ 操作が正常に終了しなかった場合、以下のことが行われます。
最終入出力ステートメントが、NO LOCK 句を持つ READ ステートメントで、かつ正常に処理されていれば、次のようになります。
レコードが読み取られてから RECORD KEY データ項目の値が変更された場合には、次のようになります。
+------------------------------End of IBM 拡張-------------------------------+