IronMan3000
IronMan3000

Reputation: 27

nested cursor-for-loops

I'm trying to use nested cursor-for-loops and get the following error: "PLS-00225" -> 'C_EMP'. I know the meaning of it but I don't know how to solve it.

Code:

set serveroutput on
set verify off
set echo off
declare
  cursor c_dept is 
      select department_id, department_name
        from departments
       where department_id < 100;

  cursor c_emp(p_department_id employees.department_id%type) is
      select last_name, job_id, hire_date, salary
        from employees
       where employee_id < 120
         and department_id = p_department_id;

begin
  <<aussen>>
  for r_dept in c_dept loop
      dbms_output.put_line('Department Number: ' || r_dept.department_id || chr(10) ||
                           'Department Name: ' || r_dept.department_name || chr(10));
      <<innen>>
      for r_emp in c_emp(r_dept.department_id) loop
          dbms_output.put_line(c_emp.late_name || c_emp.job_id || c_emp.hire_date || c_emp.salary);
      end loop innen;
  end loop aussen;
end;
/

Upvotes: 0

Views: 66

Answers (1)

MT0
MT0

Reputation: 167981

In your line:

dbms_output.put_line(c_emp.late_name || c_emp.job_id || c_emp.hire_date || c_emp.salary);

It should be:

  • r_emp instead of c_emp; and
  • last_name instead of late_name.

db<>fiddle

Upvotes: 1

Related Questions