2013-11-15 232 views
0

我試圖執行存儲過程,但我不確定我的語法是否錯誤。PLSQL Oracle 10 - 執行存儲過程

set dbms_output.put_line on; 

declare 
    v_premnum NUMBER(10); 
    v_util_type CHAR(10); 
    v_result VARCHAR2(200); 

Begin 
    execute myprocedure('E', v_util_type, 73105 , v_premnum); 
    dbms_output.put_line = v_result 
end; 

/
+1

刪除'execute'。 'myprocedure('E',v_util_type,73105,v_premnum);'就夠了。 –

+1

並將'dbms_output.put_line = v_result'更改爲'dbms_output.put_line(v_result);' –

+0

不是v_result null?你在哪裏分配任何東西? 以及v_premnum和v_util_type?他們是OUT參數還是什麼? – ogres

回答

0

有兩種方法。無論你的過程有一個輸出參數:

declare 
    v_premnum NUMBER(10) := 1234; 
    v_util_type CHAR(10) := 'the type'; 
    v_result VARCHAR2(200); 
begin 
    myprocedure('E', v_util_type, 73105 , v_premnum, v_result); 
    dbms_output.put_line(v_result); 
end; 

或者它應該是返回所需的值的函數:

declare 
    v_premnum NUMBER(10) := 1234; 
    v_util_type CHAR(10) := 'the type'; 
    v_result VARCHAR2(200); 
begin 
    v_result := myfunction('E', v_util_type, 73105 , v_premnum); 
    dbms_output.put_line(v_result); 
end;