在预言机中执行 SP



首先,我是Oracle存储过程的新手,所以我不习惯编译它们。

我尝试编译下面的存储过程,但出现异常。

SET SERVEROUTPUT ON
DECLARE
o_res_code NUMBER;
o_res_msg VARCHAR2(500);
o_curr_blnc NUMBER;
o_prev_blnc NUMBER;
BEGIN
execute SP_SC_REDEEM ('82201026551015', 1, '4739',45478,systimestamp, systimestamp,7875,82227357776962, 1.1, 1.1,:o_curr_blnc, :o_prev_blnc, :o_res_code, :o_res_msg);
END;

例外:

Bind Variable "o_curr_blnc" is NOT DECLARED
anonymous block completed

有人可以纠正我吗?

您已经声明了局部变量,因此不需要冒号来引用它们。此外,PL/SQL 块中不需要execute

DECLARE
    o_res_code NUMBER;
    o_res_msg VARCHAR2(500);
    o_curr_blnc NUMBER;
    o_prev_blnc NUMBER;
BEGIN
    SP_SC_REDEEM ('82201026551015', 1, '4739',45478
       ,systimestamp, systimestamp,7875,82227357776962, 1.1, 1.1
       ,o_curr_blnc, o_prev_blnc, o_res_code, o_res_msg);
END;