不支持返回的游标光标
我想在数据库仪表板报告软件(Logi Info)中创建图表。我有一个PL SQL包,返回一个具有多个值的引用游标,但它似乎Logi信息不支持这一点,并给我一个错误ORA-00904: "DASHBOARD_PACKAGE"."GETSUMMARYDATA": invalid identifier
。我认为它或者不被支持,或者说我的错误是错误的。这是我的查询:不支持返回的游标光标
选择dashboard_package.getSummaryData(1,SYSDATE)从双
那是如何调用返回多个值的函数吗?如果是这样,是否有解决这个问题(返回类型不支持)?
如果您使用SQL * Plus,则需要使用特殊语法才能访问REF CURSORS。
http://download.oracle.com/docs/cd/B19306_01/server.102/b14357/ch5.htm#sthref1127
因此,这将是这样的,你的情况:
这在SQL * Plus的手册是很好的解释
VARIABLE cv REFCURSOR EXECUTE dashboard_package.getSummaryData(1, sysdate, :cv) print cv
注意,:cv
变量的位置取决于你的程序的定义。
但是当你没有表现出我们的源代码
编辑
覆盖所有possibilies(如由APC提及): 如果函数确实返回REF游标,那么语法稍有不同的,因为在手动的下一章说明:
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
OP表示他们已经定义了一个返回引用游标的函数,并且他们的发布的SQL调用似乎证实了这一点。 SQL * Plus支持SELECT语句中的引用游标,而不需要变量 - 至少在更新的版本中。看到我对他们的其他问题的回应:http://*.com/questions/4614475/how-to-call-a-function-in-a-package/4615302#4615302 – APC 2011-01-06 14:16:49
这是编译错误。你的GETSUMMARYDATA()
函数引用了一个无效的对象名,表,列或其他东西。如果你使用动态SQL,你将不会在运行时得到这个编译错误。
所以,你需要通过你的函数的源代码,并找到错误的东西。随错误消息一起提供的行号在这里可以帮到你。
你能发布“DASHBOARD_PACKAGE”包规格吗?“GETSUMMARYDATA”? – Harrison 2011-01-06 13:53:12