返回的引用游标不受支持

时间:2011-01-06 10:33:50

标签: sql oracle ora-00904

我正在尝试在数据库仪表板报告软件(Logi Info)中制作图表。我有一个PL SQL包返回一个带有多个值的引用游标,但似乎Logi Info不支持这个并给我一个错误ORA-00904: "DASHBOARD_PACKAGE"."GETSUMMARYDATA": invalid identifier。我认为它不支持或我的自我错误。这是我的问题:

  

从双

中选择dashboard_package.getSummaryData(1,sysdate)

这是如何调用返回多个值的函数?如果是,是否有解决此问题的方法(不支持返回类型)?

2 个答案:

答案 0 :(得分:0)

如果您使用的是SQL * Plus,则需要使用特殊语法才能访问REF CURSORS。

在SQL * Plus手册中对此进行了详细解释:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14357/ch5.htm#sthref1127

所以在你的情况下会是这样的:

VARIABLE cv REFCURSOR
EXECUTE dashboard_package.getSummaryData(1, sysdate, :cv)
print cv

请注意:cv变量的位置取决于程序的定义 但是你没有向我们展示源代码......

修改
涵盖所有可能性(如APC所述): 如果函数确实返回了引用游标,则语法略有不同,如手册的下一章所述:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14357/ch5.htm#sthref1128

VARIABLE cv REFCURSOR
execute :cv := dashboard_package.getSummaryData(1, sysdate);
print cv

答案 1 :(得分:0)

这是编译错误。您的GETSUMMARYDATA()函数引用了无效的对象名称,表格,列或其他内容。如果您使用的是动态SQL,则在运行时之前不会出现此编译错误。

因此,您需要通过函数源代码进行编码并找到错误名称。与错误消息一起出现的行号应该对您有所帮助。