0

从 Apex 的页面进程中,我试图调用驻留在我的 oracle 数据库中的包中的函数。我可以通过以下调用调用一个过程:

#OWNER#.package_name.procedure_name( p1 => p2);

根据其中一项要求,我必须检查特定函数是否返回 true 或 false 并相应地执行操作。所以对于 pl/sql 源(在顶点)我正在尝试这个:

BEGIN

IF (#OWNER.package_name.function_name(p1)) THEN
--do something

END;

但是它说需要声明该函数(在顶点中出现此错误),我无法弄清楚我哪里出错了。我真的是 APEX 的新手,所以任何帮助都将不胜感激。而且,如果有人知道任何教程,我可以在其中了解有关从 apex 页面访问 pl/sql 代码(在 oracle db 中)的更多信息,那就太好了!

4

1 回答 1

0

您用于从 APEX 连接到数据库的用户是否有权执行该功能?

您可以以该用户身份登录到您的数据库并尝试执行该功能吗?

您可以尝试为包含该函数的包创建一个PUBLIC SYNONYM并尝试在不使用该包所属架构的名称的情况下调用它吗?

您可以检查该用户是否具有使用权限(最好以该用户身份登录):

SELECT *
  FROM user_tab_privs -- or dba_tab_privs if logged as sys etc.
WHERE grantee = 'YOUR_USERNAME'
  AND privilege = 'EXECUTE'
  AND table_name = 'YOUR_PACKAGE_NAME'
;
于 2013-10-08T09:34:08.457 回答