Assign Data from a Deleted Row to Variables in Oracle

Q

How To Assign Data of the Deleted Row to Variables in Oracle?

✍: FYIcenter.com

A

If a DELETE statement is deleting a single row, you can assign column values of the deleted row to variables by using the RETURNING clause, which an extension of DELETE statements for PL/SQL. The tutorial script shows you how to do this:

CREATE TABLE emp_temp AS SELECT * FROM employees;

DECLARE
  fname VARCHAR2(10);
  lname VARCHAR2(10);
BEGIN
  DELETE FROM emp_temp WHERE employee_id = 100;
    RETURNING first_name, last_name INTO fname, lname;
  DBMS_OUTPUT.PUT_LINE('Name deleted = ' || fname || ' '
    || lname);

  -- This will not work because multiple rows deleted
  -- DELETE FROM emp_temp WHERE employee_id > 100;
    -- RETURNING first_name, last_name INTO fname, lname;
END;
/
Name deleted = Steven King

Similar to SELECT ... INTO, RETURNING ... INTO will not work if multiple rows are deleted.

 

Working with Database Objects in Oracle PL/SQL

⇒⇒Oracle Database Tutorials

2016-10-17, 199👍, 0💬