在Toad中调用存储的PROCEDURE

时间:2013-02-01 04:12:04

标签: oracle stored-procedures toad

我有一个新的存储过程,但在调用它时会出错,

CREATE OR REPLACE PROCEDURE SCOTT.getempsal(
        p_emp_id IN NUMBER,
        p_emp_month IN CHAR,
        p_emp_sal OUT INTEGER)

AS
BEGIN
    SELECT EMP_SAL
      INTO p_emp_sal
      FROM EMPLOYEE_SAL
    WHERE  EMP_ID = p_emp_id
    AND    EMP_MONTH = p_emp_month;

END getempsal;

试图称之为:

getempsal(1,'JAN',OUT) --Invalid sql statement.

2 个答案:

答案 0 :(得分:15)

您的过程包含out参数,因此您需要在以下块中调用它:

declare
a number;
begin 
  getempsal(1,'JAN',a);
  dbms_output.put_line(a);
end;

可以使用

调用一个简单的过程(比如使用数字参数)
exec proc(1);

begin
proc(1);
end;

答案 1 :(得分:0)

只写EXECUTE procedure_name('provide_the_valueof_IN parameter','value of in parameter', :k);

运行此语句,弹出窗口将设置参数为 in out 和数据类型。您将在另一个弹出窗口中看到输出。