RETURNING INTO
Se utiliza en sentencias UPDATE y DELETE.
Devuelve valores de columna que han sido modificados/borrados por la orden DML anterior.
Sólo se puede utilizar en tablas, vistas materializadas y vistas basadas en una sola tabla y SOLO 1 registro:
DELETE FROM EMPLEADOS WHERE EmpID = aEmpID RETURNING nombre, apellidos INTO vname, vApp; UPDATE EMPLEADOS SET salario = salario * 1,2 WHERE EmpID = aEmpID RETURNING salario INTO v$1 |
RETURNING .. BULK COLLECT INTO
Si la sentencia afecta a más de una fila podemos seguir utilizando la claúsula returning into, pero tenemos que usar una colección para almacenar los datos, con BULK COLLECT.
SET SERVEROUTPUT ON DECLARE TYPE c1_emp IS TABLE OF EMPLEADOS.CAMPO1%TYPE; list_emp c1_emp; BEGIN UPDATE PRUEBA SET CAMPO1 = CAMPO1 RETURNING id BULK COLLECT INTO list_emp; FOR i IN list_emp.first .. list_emp.last LOOP DBMS_OUTPUT.put_line('Realizado update CAMPO1=' || list_emp (i)); END LOOP; COMMIT; END; / |