Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 言語解説書


DELETE ステートメント

DELETE ステートメントは、索引付きファイルまたは相対ファイルからレコードを削除します。索引付きファイルの場合、削除されたそのレコードのキーは、 新たに追加されるレコードで再使用することができます。 相対ファイルの場合、削除されたそのレコードのスペースは、 同じ RELATIVE KEY 値を持つ新しいレコードで使用可能です。

DELETE ステートメントを実行するときには、その対象となるファイルは、 I-O モードでオープンされている必要があります。

構文図を読む構文図をスキップする
フォーマット 

>>-DELETE--ファイル名-1--+--------+----------------------------->
                        '-RECORD-'   

>--+--------------------------------------+------------------->
   '-INVALID--+-----+--命令ステートメント-1-'   
              '-KEY-'                           

>--+------------------------------------------+--------------->
   '-NOT INVALID--+-----+--命令ステートメント-2-'   
                  '-KEY-'                           

>--+------------+----------------------------------------------><
   '-END-DELETE-'   

ファイル名-1
データ部の FD 項目において定義されていなければなりません。 また索引付きファイルまたは相対ファイルの名前でなければなりません。

DELETE ステートメントが正しく実行された後は、 そのレコードはファイルから削除され、以降そのレコードにアクセスすることはできません。

DELETE ステートメントの実行は、ファイル名-1 に関連するレコード域の内容には影響しません。 また、ファイル名-1 に関連する RECORD 節の DEPENDING ON 句に指定されたデータ名によって参照されるデータ項目の内容にも影響しません。

ファイル制御項目内に FILE STATUS 節が指定されている場合は、 関連するファイル状況キーが、DELETE ステートメントの実行時に更新されます。

ファイル位置標識は、DELETE ステートメントの実行によって影響を受けることはありません。

順次アクセス・モード

順次アクセス・モードのファイルの場合、前回の入出力ステートメントは、正しく実行された READ ステートメントである必要があります。DELETE ステートメントが実行されると、システムは READ ステートメントによって取り出されたレコードを削除します。

順次アクセス・モードのファイルの場合、INVALID KEY 句や NOT INVALID KEY 句を、 指定することはできません。EXCEPTION/ERROR プロシージャーを指定することはできます。

ランダムまたは動的アクセス・モード

ランダム・アクセス・モードまたは動的アクセス・モードでは、 DELETE ステートメント実行の結果は、ファイル編成 (索引付きファイルであるか相対ファイルであるか) によって異なります。

DELETE ステートメントが実行されると、システムは、 索引ファイルの基本 RECORD KEY データ項目の内容によって示されるレコード、 または相対ファイルの RELATIVE KEY データ項目によって示されるレコードを除去します。ファイルにその種のレコードがない場合は、無効キー条件が存在しています (無効キー条件を参照してください。)

INVALID KEY 句および利用可能な EXCEPTION/ERROR プロシージャーは、両方とも省略することができます。

NOT INVALID KEY 句の指定がある DELETE ステートメントが正しく実行された後、 制御は、その句と関連付けられた命令ステートメントに移動します。

END-DELETE 句

この明示的範囲終了符号は、DELETE ステートメントの範囲を区切るために使用されます。 END-DELETE 句を使用することによって条件的な DELETE ステートメントを他の条件的なステートメントの中にネストすることができます。 END-DELETE 句は、命令の DELETE ステートメントと共に使用することもできます。

詳しくは、範囲区切りステートメントを参照してください。


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)