我正在尝试在数据库仪表板报告软件(Logi Info)中制作图表。我有一个PL SQL包返回一个带有多个值的引用游标,但似乎Logi Info不支持这个并给我一个错误ORA-00904: "DASHBOARD_PACKAGE"."GETSUMMARYDATA": invalid identifier
。我认为它不支持或我的自我错误。这是我的问题:
从双
中选择dashboard_package.getSummaryData(1,sysdate)
这是如何调用返回多个值的函数?如果是,是否有解决此问题的方法(不支持返回类型)?
答案 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,则在运行时之前不会出现此编译错误。
因此,您需要通过函数源代码进行编码并找到错误名称。与错误消息一起出现的行号应该对您有所帮助。