从 apex 页面进程调用 pl/sql 函数

Posted

技术标签:

【中文标题】从 apex 页面进程调用 pl/sql 函数【英文标题】:Calling a pl/sql function from apex page process 【发布时间】: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 中)的更多信息,那就太好了!

【问题讨论】:

您能否在您的问题中添加包装规范。 替换字符串用主题标签括起来,而不仅仅是一个开头。 【参考方案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'
;

【讨论】:

以上是关于从 apex 页面进程调用 pl/sql 函数的主要内容,如果未能解决你的问题,请参考以下文章

Oracle Apex:PL/SQL 块中的 Javascript 代码

Oracle ApeX (PL/SQL) - 从 JavaScript 变量中创建绑定变量

ORACLE apex - 使用 PL/SQL 循环通过复选框项目

如何从 Javascript 函数中调用 PL/SQL 变量?

PL/SQL 中的问题 = 错误堆栈:ORA-01403:Oracle Application Express (APEX) 中没有数据

从基于 PL/SQL 函数体返回 SQL 查询的 Oracle APEX 5 经典报告下载到 Excel 选项,