我试图创建一个使用引用的pl/sql块。基本上,这是迄今为止我所拥有的。他们都作为个人游标工作。我在参考资料中发现它有点困难。我需要的是列出部门名称,然后转至emp_cursor
并列出所有在department_id =外部游标部门_id中的员工。Oracle PL/SQL参考游标如何到
set serveroutput on
declare
cursor dept_cursor is
select department_id, department_name
from departments
where department_id < 100;
dep_id departments.department_id%type;
dep_name departments.department_name%type;
cursor emp_cursor is
select last_name, job_id, hire_date, salary
from employees
where employee_id < 120 and department_id =/*Need reference from deptartmens.departments_id*/department_id;
emp_ln employees.last_name%type;
emp_jid employees.job_id%type;
emp_hd employees.hire_date%type;
emp_sal employees.salary%type;
begin
for rec_dept in dept_cursor loop
dbms_output.put_line('Department Number: '||rec_dept.department_id|| ' Department Name: ' || rec_dept.department_name);
dbms_output.put_line('---------------------------------------------');
for rec_emp in emp_cursor loop
dbms_output.put_line(rec_emp.last_name||' ' || rec_emp.job_id ||' ' || rec_emp.hire_date ||' '|| rec_emp.salary);
end loop;
dbms_output.put_line('---------------------------------------------');
end loop;
end ;
例如,某些输出将如下所示。
Department Number : 10 Department Name : Administration
----------------------------------------------------------------------------------------
Department Number : 20 Department Name : Marketing
----------------------------------------------------------------------------------------
Department Number : 30 Department Name : Purchasing
Raphaely PU_MAN 07-DEC-94 11000
Khoo PU_CLERK 18-MAY-95 3100
Baida PU_CLERK 24-DEC-97 2900
Tobias PU_CLERK 24-JUL-97 2800
Himuro PU_CLERK 15-NOV-98 2600
Colmenares PU_CLERK 10-AUG-99 2500
----------------------------------------------------------------------------------------