如何使用in和输出参数pl / sql获取存储过程的输出

时间:2019-09-21 12:14:46

标签: oracle stored-procedures plsql

我创建了存储过程...在其中成功创建了employee_name,salary和他的manager_name ..过程,但是当我执行时给出了无效参数错误..我该如何执行该过程... < / p>

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 ;

1 个答案:

答案 0 :(得分:1)

如果您向我们展示了调用该过程时到底发生了什么,或者-至少-发布了ORA-xxxxx错误代码,将会对您有所帮助。有了到目前为止的信息,我们只能猜测。

我的猜测是您错误地称呼它。由于它接受一个I​​N参数和三个OUT参数,因此您必须声明三个变量。像这样的东西:

declare
  l_fname   employees.first_name%type;
  l_sal     employees.salary%type;
  l_fname1  employees.first_name%type;
begin
  employee_manager(dept_id     => 10,
                   fname       => l_fname,
                   v_sal       => l_sal,
                   fname1      => l_fname1);

  dbms_output.put_line('Values returned are: ' || l_fname ||', '|| l_sal ||', '|| l_fname1);
end;
/