2

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

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

4

1 回答 1

1

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

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

除了 Apex 环境之外,该v函数还可以从您命名的 PL/SQL 存储过程、包等中运行。

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

  • 安装 Apex,或
  • 从代码中删除v函数调用
于 2019-05-02T06:44:39.423 回答