如何使用 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 函数以进行现场验证