让我解释一下我的情况。 现在我需要创建一个新的 APEX 应用程序。但我没有使用 APEX SQL Workshop(图 1)作为数据库。正在通过包检索数据。 请引用图2中的层级设计。从层次结构来看,数据存储在 D1EDATA 中的 Table_A 中。 D1EDATA 有一个名为 Package_A 的包。 D1APEX 是应用程序。它调用包来选择、更新或删除存储在 Table_A 中的记录
图1:开发环境
图 2:应用架构设计
我的问题如下:
- 如何从 APEX 应用程序调用包中的函数/过程?
- 如何获得登录的用户 ID。哪个表存储 APEX 用户详细信息?
最佳答案
- 第一个问题很简单:要在 apex 应用程序中运行函数/过程,您必须执行以下操作:
- 在您的应用程序中创建一个页面(或使用以前创建的)
- 点击
Regions
标签附近的 + 按钮创建新区域; - 在创建区域向导中,选择
Form
-Form on a procedure
- 在接下来的步骤中,选择您的程序/功能并填写其他必填字段。
Apex 将创建一个表单,其中包含每个过程/函数参数的字段以及按钮 Run
(我不记得确切的名称)和 Cancel
。
- 你的第二个问题很大。首先,这取决于您的身份验证方案。有很多选项:数据库帐户、APEX 帐户、自定义、LDAP 等等。
- 数据库帐户 - 您使用数据库帐户登录到您的应用程序。在这种情况下,apex 使用系统 oracle 表中的登录名和密码。
- APEX 帐户 - 您使用开发人员帐户登录 APEX IDE 和相同的帐户 - 登录应用程序。
- 自定义方案 - 您自己创建所有表、检查用户登录名和密码的程序等。
UPD
您可以使用 v
函数在 PL/SQL 代码中定义用户名(无论当前身份验证方案如何):v('APP_USER')
。但请记住,如果您不是从 APEX 应用程序调用此函数,它会返回 NULL
。有一种通用的调用方式(在 UPDATE
语句中):
update mt_table set username = nvl(v('APP_USER'), user);
关于database - 创建新的 Oracle Application Express (APEX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35126767/