:
BEGIN
OPEN :cur FOR
SELECT *
FROM table
WHERE condition;
DELETE
FROM table
WHERE condition;
END;
.
. :
:
CREATE TABLE t_deleter (id INT NOT NULL PRIMARY KEY, value VARCHAR2(50))
/
INSERT
INTO t_deleter (id, value)
VALUES (1, 'Value 1')
/
INSERT
INTO t_deleter (id, value)
VALUES (2, 'Value 2')
/
COMMIT
/
SELECT *
FROM t_deleter
/
VAR cur REFCURSOR
BEGIN
OPEN :cur FOR
SELECT *
FROM t_deleter
WHERE id = 1;
DELETE
FROM t_deleter
WHERE id = 1;
END;
/
PRINT cur
SELECT *
FROM t_deleter
/
Table created.
1 row created.
1 row created.
Commit complete.
ID VALUE
1 Value 1
2 Value 2
PL/SQL procedure successfully completed.
ID VALUE
1 Value 1
ID VALUE
2 Value 2