2012-10-16 45 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;