テーブルの行を削除します。
構文
DELETE [ optimizer_hint ] FROM table[subquery][@ 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 に設定されます。
RETURNING BULK COLLECT INTO collection [, ...]
句は、SPLプログラム内でDELETE
コマンドを使用する場合にのみ指定できます。 BULK 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_expression はrecord の最初のフィールドに割り当てられ、2番目のreturn_expression はrecord の2番目のフィールドに割り当てられます。 record 内のフィールドの数は式の数と一致する必要があり、フィールドは対応する式と型互換性がある必要があります。 |
variable | return_expression の評価結果を代入する変数です。 複数のreturn_expression とvariable を指定した場合、最初のreturn_expression は最初のvariable に割り当てられ、2番目のreturn_expression は2番目のvariable に割り当てられます。 INTO キーワードに続く指定された変数の数は、RETURNING キーワードに続く式の数と一致する必要があり、変数は対応する式と型互換である必要があります。 |
collection | 評価されたreturn_expression から要素が作成されるコレクション。 単一フィールドのコレクションまたはレコードタイプのコレクションを指定できます。 各コレクションが単一フィールドで構成される複数のコレクションを指定することもできます。 戻り式の数は、指定したすべてのコレクションのフィールド数と一致し、順序付けする必要があります。 各return_expression は、対応するcollection フィールドと型互換である必要があります。 |
subquery | このパラメーターは、サブクエリ句を指定します。 |
例:
jobhist
テーブルから従業員7900の行をすべて削除します。
jobhistから削除するWHERE empno = 7900;
jobhist
テーブルをクリアする:
jobhistから削除します。
SELECT * FROM t
の結果をオブジェクトとして取得し、オブジェクトのすべてのデータを削除します。
DELETE FROM (SELECT * FROM t);