出现这个,表示你调用存储过程的方式出错啦
存储过程代码
CREATE OR REPLACE PROCEDURE TEST_PROCEDURE(
a PLS_INTEGER, -- IN by default
b IN PLS_INTEGER,
c OUT PLS_INTEGER,
d IN OUT BINARY_FLOAT
) AUTHID DEFINER IS
BEGIN
-- 代码逻辑
END;
原来的错误调用方式
CALL TEST_PROCEDURE(1,2,3,4);
原因
out
类型的参数,必须是已经在存储过程外部定义过的
解决方法
先使用DECLARE
定义参数,再调用存储过程。
DECLARE
c PLS_INTEGER; d BINARY_FLOAT;
BEGIN
TEST_PROCEDURE(1, 2, c, d);
dbms_output.PUT_LINE(c);
dbms_output.PUT_LINE(d);
END;