declare -- DELETE RETURNs one row -- static SQL -- fails at 9.2.0 with PL/SQL: ORA-00936: -- missing expression -- -- CANNOT AVOID NAMING COLUMNS YET -- v_employee_id employees_0.employee_id%type := 100; v_emprec employees_0%rowtype; begin delete from employees_0 where employee_id = v_employee_id returning * into v_emprec /* this may or may not be the syntax that is supported in a later realease */; end; / -- ERROR at line N: rollback /* prepare for repeat or for next sample */; -- Rollback complete. declare -- WORKAROUND -- List all the columns for RETURNING in the SQL -- target out-bind CAN be a RECORD -- fails at 9.0.1 with ORA-00600: -- internal error ... v_employee_id employees_0.employee_id%type := 100; v_emprec employees_0%rowtype; begin delete from employees_0 where employee_id = v_employee_id returning employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id into v_emprec; Emp_Util.Show_One ( v_emprec ); end; / -- PL/SQL procedure successfully completed. rollback /* prepare for repeat or for next sample */; -- Rollback complete.