DELETE v12
The DELETE
command (available in the SQL language) can also be used in SPL programs.
An expression in the SPL language can be used wherever an expression is allowed in the SQL DELETE
command. Thus, SPL variables and parameters can be used to supply values to the delete operation.
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;
The SQL%FOUND
conditional expression returns TRUE
if a row is deleted, FALSE
otherwise. See Obtaining the Result Status for a discussion of SQL%FOUND
and other similar expressions.
The following shows the deletion of an employee using this procedure.
EXEC emp_delete(9503); Deleted Employee # : 9503 SELECT * FROM emp WHERE empno = 9503; empno | ename | job | mgr | hiredate | sal | comm | deptno -------+-------+-----+-----+----------+-----+------+-------- (0 rows)
Note
The DELETE
command can be included in a FORALL
statement. A FORALL
statement allows a single DELETE
command to delete multiple rows from values supplied in one or more collections. See Using the FORALL Statement for more information on the FORALL
statement.