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

时间:2019-05-02 06:27:22

标签: oracle plsql oracle-apex plsql-package

我正在尝试编译同事留给我的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.

由于离开我的同事该代码不再可用,因此我不知道如何编译它们。

1 个答案:

答案 0 :(得分:1)

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

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

除了Apex环境外,v函数还可以在您命名的PL / SQL存储过程,程序包等中使用。

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

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