2015-01-21 33 views
-1

我的程序是這樣的:如何excecute存儲過程的參數在甲骨文

CREATE OR replace PROCEDURE rs_pes (c1    IN OUT SYS_REFCURSOR, 
            pi_prod_type_code IN VARCHAR2, 
            pi_entry_date  IN VARCHAR2, 
            pi_dealer   IN VARCHAR2, 
            pi_adv   IN VARCHAR2) 

而且,我想execure這樣的:

execute RS_PES('Investments Series 2', 
     '31-12-2012', 
     'All Dealer', 
     'All Adv') 

我得到不正確的語法錯誤。

ORA-00900: Invalid SQL statement 
00900.00000 - Invalid SQL statement 

我在做什麼錯,如何執行此操作?我是Oracle新手。

+1

你忘了括號。參數在括號內指定 – Sathya 2015-01-21 10:15:56

+0

即使throgh我給支架,它給了我同樣的錯誤。我修改了我的問題。 – bapi 2015-01-21 10:17:26

+0

你用什麼來執行? – Sathya 2015-01-21 10:18:54

回答

0

Execute是一個SQL * Plus命令,它基本上繞BEGIN/END語句包裝您的過程調用。這是行不通的其他地方,除了在SQL * Plus

如果要執行Oracle SQL Developer中的程序,將它包裝在BEGIN/END塊

BEGIN 
RS_PES('Investments Series 2', 
     '31-12-2012', 
     'All Dealer', 
     'All Adv'); 

END; 

而且,你的程序有5個參數,而你只設置了4.你需要修復這個問題。