0

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

从 dual 中选择 dashboard_package.getSummaryData(1,sysdate)

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

4

2 回答 2

0

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

这在 SQL*Plus 手册中有很好的解释:http:
//download.oracle.com/docs/cd/B19306_01/server.102/b14357/ch5.htm#sthref1127

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

变量 cv REFCURSOR
执行dashboard_package.getSummaryData(1, sysdate, :cv)
打印简历

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

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

变量 cv REFCURSOR
执行 :cv := dashboard_package.getSummaryData(1, sysdate);
打印简历
于 2011-01-06T13:57:59.603 回答
0

这是一个编译错误。您的GETSUMMARYDATA()函数引用了无效的对象名称、表、列或其他任何内容。如果您使用的是动态 SQL,则直到运行时才会出现此编译错误。

因此,您需要对函数的源代码进行编码并找到名称错误的东西。错误消息附带的行号在这里应该可以帮助您。

于 2011-01-06T14:13:00.767 回答