如何使用 APEX 函数编译 Oracle 包?

Posted

技术标签:

【中文标题】如何使用 APEX 函数编译 Oracle 包?【英文标题】:How to compile Oracle package with APEX functions? 【发布时间】:2019-05-02 06:27:21 【问题描述】:

我正在尝试编译我的同事留给我的 Oracle 包。但是,包装规格。包含一些我的 Oracle 环境中可能没有构建的功能。

create or replace PACKAGE AAA IS
  g_session     VARCHAR2(400) := v('SESSION');
  g_user        VARCHAR2(400) := v('APP_USER');

  PROCEDURE p_1;
END AAA;

当我尝试在 Oracle 开发人员中编译包规范时,我说

'V' must be declared.

由于留给我的同事这段代码已经不可用,我不知道如何编译它们。

【问题讨论】:

我在想v是否是一些Oracle内置函数或提供了一些Oracle库。 【参考方案1】:

v 函数在 Apex 环境中是有意义的;它将返回您传递给它的参数的值。在您的示例中,这将是这样的:

v('SESSION') = 32604633949883   --> session ID
v('APP_USER') = LITTLEFOOT      --> user logged to Apex

除了 Apex 环境之外,v 函数还适用于您命名的 PL/SQL 存储过程、包等。

由于您无法编译该代码,因此包含该软件包的数据库中似乎没有安装 Apex。有没有?如果没有,那么您将无法编译它,因此您可以:

安装 Apex,或 从您的代码中删除 v 函数调用

【讨论】:

如何判断我的 Oracle 实例是否安装了 APEX?实际上我在一些脚本中找到了一些关于 APEX 的设置。 以特权用户身份连接并运行select * from all_users order by username - APEX 用户将列在列表顶部的某处。

以上是关于如何使用 APEX 函数编译 Oracle 包?的主要内容,如果未能解决你的问题,请参考以下文章

如何在动态操作中单击按钮时调用Oracle APEX中的javascript函数?

Oracle Apex 21.1:如何使用散列密码创建、存储和检索(验证)用户

在 Oracle APEX v4.2.2 中通过 Ajax 调用 Oracle 函数以进行现场验证

如何将过程中的变量值传递给 Apex 中的 Javascript 函数

使用页面项目值在 oracle apex 中搜索经典报告

如何处理 Oracle APEX 报告中的复选框项目?