2012-10-16 53 views
1

我有一個看起來像這樣的一個過程:用空遊標調用oracle過程?

PROCEDURE myprocedure (
     i_area  IN  somenumber%TYPE, 
     io_areadata IN OUT areacursor 
    ); 

我不知道是否有任何簡單的方法來調用程序嗎?我有第一個參數的數據,但第二個我不知道輸入什麼。有什麼辦法可以輸入空白光標或類似的東西嗎?

這是我迄今所做的:

BEGIN 
package.myprocedure (
     12345 
    ); 
END; 

這使我有以下錯誤:

Error report: 
ORA-06550: row 2, column 1: 
PLS-00306: wrong number or types of arguments in call to 'MYPROCEDURE' 
ORA-06550: row 2, column 1: 
PL/SQL: Statement ignored 
06550. 00000 - "line %s, column %s:\n%s" 
*Cause: Usually a PL/SQL compilation error. 

謝謝你提前和對不起我的(也許)差解釋。我幾乎沒有PL/SQL的經驗。

回答

3

您必須提供該參數。您可以這樣做:

DECLARE 
    dummy package.areacursor; 
BEGIN 
package.myprocedure (
     12345, dummy 
    ); 
END; 
+0

沒有工作:'ORA-06550:第2行,列9: PLS-00201:標識符 'areacursor' 必須聲明爲 ORA-06550:第2行,列9: PL/SQL:項目忽略 ORA-06550:第5行,第16列: PLS-00320:該表達式類型的聲明不完整或格式錯誤 – Ms01

+0

查看更新後的答案 - 我猜這個包在類中聲明瞭areacursor。 –

+0

是啊,看到它,它的工作原理,非常感謝:) – Ms01

0

通過這種方式,您可以通過將特定值傳遞給特定參數來調用存儲過程。 試試這個。

Begin 

package.myprocedure(i_area => '12345); 

end;