DELETE 文は、大容量記憶ファイルからレコードを論理的に削除する。DELETE 文は、相対編成または索引編成のファイルに対してのみ指定できる。
一般形式
一般規則
- この文の実行時には、対象ファイルを I-O (入出力両用) モードで開いておく。「OPEN 文」トピックを参照。
- 順呼び出しモードのファイルの場合、file-name-1 に対して DELETE 文の実行前に最後に行われた入出力文は、正常に実行が完了した READ 文とする。オペレーティング システムは、その READ 文が呼び出したレコードをファイルから論理的に削除する。
- 乱呼び出しモードまたは動的呼び出しモードのファイルの場合、オペレーティング システムは、file-name に関連付けられたキー データ項目の内容によって識別されるレコードをファイルから論理的に削除する。相対ファイルの場合、このキー データ項目は相対キーであり、索引ファイルの場合、このキー
データ項目は主レコード キーである。キーが指定したレコードがファイルに含まれていない場合は、無効キー条件が発生する。「手続き部」の章の「INVALID KEY 条件」セクションを参照。
- DELETE 文の実行が正常に完了すると、対象のレコードはファイルから論理的に削除されて呼び出せなくなる。
- DELETE 文を実行することによって、file-name-1 に関連付けられたレコード領域の内容が影響を受けることはない。
- DELETE 文を実行することによって、ファイル位置指示子が影響を受けることはない。
- DELETE 文を実行すると、file-name に関連付けられている指定された FILE STATUS データ項目 (ある場合) の値が更新される。「手続き部」の章の「入出力状態」のトピックを参照。
- DELETE 操作の実行が成功または失敗した後、制御がどのように移されるかは、
DELETE 文内の
オプションの INVALID KEY 指定
および NOT INVALID KEY 指定
の有無に左右される。
「手続き部」の章の「INVALID KEY 条件」トピックを参照。
END-DELETE 指定は DELETE 文の有効範囲を区切る(「COBOL 言語の概念」の章の「明示範囲符および暗示範囲符」のセクションを参照)。
DELETE 文を使用する場合は、削除対象のレコードを他の実行単位がロックしないようにする。
DELETE 文の実行が正常に完了すると、削除対象のレコードに対して実行単位が保持していたレコード ロックが解除される。