テーブルの行を削除します。

構文

DELETE [ optimizer_hint ] FROM table[@dblink ]
  [ WHERE condition ]
  [ RETURNING return_expression [, ...]
      { INTO { record | variable [, ...] }
      | BULK COLLECT INTO collection [, ...] } ]

説明

DELETE コマンドを使用して、指定したテーブルから WHERE 句の条件を満たす行を削除できます。 WHERE 句を指定しない場合、テーブル内のすべての行が削除されます。 結果は有効で、テーブルは空になります。

TRUNCATE コマンドは、テーブルからすべての行を削除するためのより高速なメカニズムを提供します。

SPL プログラム内で DELETE コマンドを使用する場合、RETURNING INTO { record | variable [, ...] } 句を指定できます。 また、DELETE コマンドの結果セットには、複数の行を含められません。 それ以外の場合は、例外が生じます。 結果セットが空の場合、ターゲットレコードまたは変数の内容は null に設定されます。

SPL プログラム内で DELETE コマンドを使用する場合、RETURNING BULK COLLECT INTO collection [, ...] 句を指定できます。 複数の collectionBULK COLLECT INTO 句の対象として指定する場合、各 collection は単一のスカラー値で構成される必要があります。collection はレコードであってはなりません。 DELETE コマンドの結果セットには、0、1、またはそれ以上の行を含めることができます。結果セットの各行ごとに評価される return_expression は、collection の要素となります。最初の要素から開始されます。 collection 内の既存の行は削除されます。 結果セットが空の場合、collection も空です。

行を削除するテーブルに対して DELETE 権限、および条件内でデータが読み取られるテーブルに対して SELECT 権限を持っている必要があります。

パラメーター

パラメーター 説明 
optimizer_hint 実行計画を選択するために使用されるオプティマイザへのコメント埋め込み型ヒント。
table 既存のテーブルの名前。 名前はスキーマで修飾できます。
dblink リモートデータベースを識別するデータベースリンク名。 データベースリンクの詳細については、CREATE DATABASE LINK コマンドをご参照ください。
condition BOOLEAN データ型の値を返す値式。 削除する行を決定します。
return_expression table の 1 つ以上の列を含めることができる式。 table の列名が return_expression に指定されている場合、return_expression が評価されるときに列に代入される値は、削除された行の値です。
record return_expression の評価結果を割り当てるフィールドを持つレコード。 たとえば、最初の return_expressionrecord の最初のフィールドに、2 番目の return_expressionrecord の 2 番目のフィールドに割り当てられます。 record のフィールド数は、式の数と一致する必要があり、フィールドのデータ型は対応する式のデータ型と互換性がある必要があります。
variable return_expression の評価結果を代入する変数。 複数の return_expressionvariable を指定すると、最初の return_expression が 最初の variable、2 番目の return_expression が 2 番目の variable に割り当てられます。 INTO キーワードに続けて指定した変数の数は、RETURNING キーワードに続く式の数と一致する必要があり、また変数のデータ型は対応する式と互換性がなければなりません。
collection 評価された return_expression から作成される要素のコレクション。 単一のフィールドのコレクションまたはレコードタイプのコレクションを指定できます。 各コレクションが単一のフィールドで構成される複数のコレクションを指定することもできます。 戻り式の数は、指定したすべてのコレクションのフィールド数と一致し、順序付けする必要があります。 各 return_expression は、対応する collection フィールドとデータ型の互換性がある必要があります。

jobhist テーブルから、従業員番号が 7900 の従業員に関するすべての行を削除します。

DELETE FROM jobhist WHERE empno = 7900;

jobhist テーブルをクリアします。

DELETE FROM jobhist;