【发布时间】:2019-09-21 12:14:46
【问题描述】:
我已经创建了存储过程...在其中获取employee_name,salary和他的manager_name..过程已成功创建但是当我执行时给出无效参数的错误..我如何执行此过程...
create or replace procedure employee_manager (
dept_id in number,
fname out varchar2,
v_sal out number,
fname1 out varchar2
)
is
begin
select a.first_name manager_name,
b.first_name employee_name,
b.salary
into fname,
fname1,
v_sal
from employees a join employees b on a.employee_id = b.manager_id
where a.department_id = dept_id;
end employee_manager ;
【问题讨论】:
-
假设部门可以有多名员工,一旦您解决了调用程序的问题,您将获得
too_many_rows异常。如果您想要标量out参数,则需要运行返回单行的查询。如果要运行返回多行的查询,可以返回集合类型。但返回sys_refcursor可能更有意义。但我会质疑将这段代码放在一个过程中是否真的有意义,而不仅仅是创建一个可以查询的视图。
标签: oracle stored-procedures plsql