DELETE¶
</ div>
DELETEコマンド(
SQL言語で使用可能)は、SPLプログラムでも使用できます。
SQL
DELETEコマンドで式が許可されている場合は、SPL言語の式を使用できます。したがって、SPL変数およびパラメーターを使用して、削除オペレーションに値を提供できます。
CREATE OR REPLACE PROCEDURE emp_delete (
* p_empno IN emp.empno%TYPE
)
IS
BEGIN
* DELETE FROM emp WHERE empno = p_empno;
* IF SQL%FOUND THEN
* DBMS_OUTPUT.PUT_LINE('Deleted Employee # : ' || p_empno);
* ELSE
* DBMS_OUTPUT.PUT_LINE('Employee # ' || p_empno || ' not found');
* END IF;
END;
SQL%FOUND条件式は、行が削除されるとTRUEを返し、そうでない場合はFALSEを返します。
SQL%FOUNDおよび他の同様の式の説明については、Obtaining the
Result
Statusを参照してください。
以下に、このプロシージャを使用した従業員の削除を示します。
EXEC emp_delete(9503);
Deleted Employee # : 9503
SELECT * FROM emp WHERE empno = 9503;
* empno | ename | job | mgr | hiredate | sal | comm | deptno
-------+-------+-----+-----+----------+-----+------+--------
(0 rows)
!!! Note *
DELETEコマンドは、FORALLステートメントに含めることができます。
FORALLステートメントを使用すると、1つのDELETEコマンドで、1つ以上のコレクションで提供された値からマルチプルの行を削除できます。
FORALLステートメントの詳細については、Using the FORALL
Statementを参照してください。