创建新的 Oracle Application Express (APEX)

Create a new Oracle Application Express (APEX)

让我解释一下我的情况。 现在我需要创建一个新的 APEX 应用程序。但是我没有使用 APEX SQL Workshop(图 1)作为数据库。正在通过包检索数据。 请参考图2中的层级设计。从层次结构来看,数据存储在 D1EDATA 中的 Table_A 中。 D1EDATA 有一个名为 Package_A 的包。 D1APEX 是应用程序。它调用包到select,更新或删除存储在Table_A

中的记录

图 1:开发环境

图 2:应用架构设计


我的问题如下:

  1. 如何从 APEX 应用程序调用包中的 function/procedure?
  2. 如何获取登录的用户 ID。哪个 table 存储 APEX 用户详细信息?
  1. 第一个问题很简单:要运行 function/procedure在apex应用中,你必须做以下事情:
    • 在您的应用程序中创建一个页面(或使用以前创建的)
    • 单击 Regions 标签附近的 + 按钮创建新区域;
    • 在创建区域向导中,选择 Form - Form on a procedure
    • 在接下来的步骤中选择您的 procedure/function 并填写其他必填字段。

Apex 将创建一个表单,其中包含每个 procedure/function 参数的字段以及按钮 Run(我不记得确切的名称)和 Cancel.

  1. 你的第二个问题有点大。首先,这取决于您的身份验证方案。有很多选项:数据库帐户、APEX 帐户、自定义、LDAP 等等。
    • 数据库帐户 - 您使用数据库帐户登录到您的应用程序。在这种情况下,apex 使用系统 oracle 表中的登录名和密码。
    • APEX 帐户 - 您使用开发人员 aacounts 登录 APEX IDE 和相同的帐户 - 登录应用程序。
    • 自定义方案 - 您自己创建所有表、检查用户登录名和密码的程序等

UPD
您可以使用 v 函数在 PL/SQL 代码中定义您的用户名(无论当前身份验证方案如何):v('APP_USER')。但请记住,如果您不是从 APEX 应用程序调用此函数 returns NULL。有一种通用的调用方式(在 UPDATE 语句中):

update mt_table set username = nvl(v('APP_USER'), user);