declare
  -- DELETE RETURNs many rows

  -- static SQL
  -- fails at 9.2.0 with PL/SQL: ORA-00936:
  -- missing expression
  --
  -- CANNOT AVOID NAMING COLUMNS YET

  --
  v_avg_hire_date employees_0.hire_date%type := '25-JUN-97';
  v_emprecs Emp_Util.emprec_tab_t;
begin
  delete from employees_0 where hire_date < = v_avg_hire_date
    returning * bulk collect into v_emprecs

    /* 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 PLS-00597:
  -- expression 'V_EMPRECS' in the INTO list is of wrong type
  v_avg_hire_date employees_0.hire_date%type := '25-JUN-97';
  v_emprecs Emp_Util.emprec_tab_t;
begin
  delete from employees_0 where hire_date < = v_avg_hire_date
    returning
      employee_id,
      first_name,

      last_name,
      email,
      phone_number,
      hire_date,
      job_id,
      salary,
      commission_pct,
      manager_id,
      department_id
    bulk collect into v_emprecs;

  Emp_Util.Show_All ( v_emprecs );
end;
/
-- PL/SQL procedure successfully completed.
rollback /* prepare for repeat or for next sample */;
-- Rollback complete.