我有一个新的存储过程,但在调用它时会出错,
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.
答案 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 和数据类型。您将在另一个弹出窗口中看到输出。