2016-05-31 191 views
0

首先,我是Oracle存儲過程中的新成員,所以我不習慣編譯它們。在oracle中執行SP

我試圖編譯下面的存儲過程,但得到了異常。

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 

可有人請糾正我?

+0

從代碼中刪除執行。腳本中不需要它們。 – dcieslak

回答

1

您已聲明局部變量,因此您不需要冒號來引用它們。另外,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;