DELETE

Name

DELETE -- はテーブルの行を削除します

Synopsis

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

Description

DELETE は、 WHERE 句を満たす行を指定されたテーブルから削除します。 WHERE 句がない場合、テーブル内のすべての行が削除されます。結果は有効ですが、空のテーブルです。

注釈

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

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

RETURNING BULK COLLECT INTO collection [, ...] 節は、 DELETE コマンドがSPLプログラム内で使用される場合にのみ指定できます。 BULK COLLECT INTO 節のターゲットとして複数の「10」が指定されている場合、各「10」は単一のスカラーフィールドで構成されている必要があります。つまり、「10」はレコードであってはなりません。 DELETE コマンドの結果セットには、0行、1行、または複数行が含まれる場合があります。結果セットの各行で評価された return_expression は、最初の要素から始まる「10」の要素になります。「10」の既存の行はすべて削除されます。結果セットが空の場合、「10」は空になります。

削除するテーブルの DELETE 特権と、条件で値が読み取られるテーブルの SELECT 特権が必要です。

Parameters

optimizer_hint

実行計画を選択するためのオプティマイザーへのコメントが埋め込まれたヒント。

table

既存のテーブルの名前(オプションでスキーマ修飾)。

dblink

リモートデータベースを識別するデータベースリンク名。データベースリンクの詳細については、 CREATE DATABASE LINK コマンドを参照してください。

condition

削除する行を決定する BOOLEAN 型の値を返す値式。

return_expression

table の1つ以上の列を含む可能性のある式。 return_expression に table の列名が指定されている場合、 return_expression が評価されるときに列に代入される値は、削除された行の値です。

record

評価された return_expression が割り当てられるフィールドを持つレコード。最初の return_expression は record の最初のフィールドに割り当てられ、2番目の return_expression は record の2番目のフィールドに割り当てられます。 record のフィールドの数は式の数と正確に一致する必要がありますフィールドは、割り当てられた式と型互換性がなければなりません。

variable

評価された return_expression が割り当てられる変数。 return_expression と variable が複数指定されている場合、 first return_expression は最初の variable に割り当てられ、2番目の return_expression は2番目の variable に割り当てられます。 INTO キーワードは RETURNING キーワードに続く式の数と正確に一致する必要があり、変数は割り当てられた式と型互換性がなければなりません。

collection

評価された return_expression から要素が作成されるコレクション。単一フィールドのコレクションまたはレコードタイプのコレクションである単一コレクション、または複数のコレクションがあり、各コレクションが単一フィールドで構成されている必要があります。戻り式の数は数が一致し、指定されたすべてのコレクション内のフィールドの数を並べる必要があります。対応する各 return_expression および collection フィールドは、タイプ互換である必要があります。

Examples

jobhist テーブルから従業員 7900 のすべての行を削除します。

DELETE FROM jobhist WHERE empno = 7900;

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

DELETE FROM jobhist;

See Also

TRUNCATE