【问题标题】:Calling a pl/sql function from apex page process从 apex 页面进程调用 pl/sql 函数
【发布时间】:2013-10-08 07:17:40
【问题描述】:

从 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 中)的更多信息,那就太好了!

【问题讨论】:

  • 您能否在您的问题中添加包装规范。
  • 替换字符串用主题标签括起来,而不仅仅是一个开头。

标签: database oracle plsql oracle-apex function-calls


【解决方案1】:

您用来从 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'
;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多