テーブルの行を削除します。
構文
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 [, ...]
句を指定できます。 複数の collection
を 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 フィールドとデータ型の互換性がある必要があります。
|
例
jobhist
テーブルから、従業員番号が 7900 の従業員に関するすべての行を削除します。
DELETE FROM jobhist WHERE empno = 7900;
jobhist
テーブルをクリアします。
DELETE FROM jobhist;