创建新的 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:应用架构设计
我的问题如下:
- 如何从 APEX 应用程序调用包中的 function/procedure?
- 如何获取登录的用户 ID。哪个 table 存储 APEX 用户详细信息?
- 第一个问题很简单:要运行 function/procedure在apex应用中,你必须做以下事情:
- 在您的应用程序中创建一个页面(或使用以前创建的)
- 单击
Regions
标签附近的 + 按钮创建新区域;
- 在创建区域向导中,选择
Form
- Form on a procedure
- 在接下来的步骤中选择您的 procedure/function 并填写其他必填字段。
Apex 将创建一个表单,其中包含每个 procedure/function 参数的字段以及按钮 Run
(我不记得确切的名称)和 Cancel
.
- 你的第二个问题有点大。首先,这取决于您的身份验证方案。有很多选项:数据库帐户、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);
让我解释一下我的情况。 现在我需要创建一个新的 APEX 应用程序。但是我没有使用 APEX SQL Workshop(图 1)作为数据库。正在通过包检索数据。 请参考图2中的层级设计。从层次结构来看,数据存储在 D1EDATA 中的 Table_A 中。 D1EDATA 有一个名为 Package_A 的包。 D1APEX 是应用程序。它调用包到select,更新或删除存储在Table_A
中的记录图 1:开发环境
图 2:应用架构设计
我的问题如下:
- 如何从 APEX 应用程序调用包中的 function/procedure?
- 如何获取登录的用户 ID。哪个 table 存储 APEX 用户详细信息?
- 第一个问题很简单:要运行 function/procedure在apex应用中,你必须做以下事情:
- 在您的应用程序中创建一个页面(或使用以前创建的)
- 单击
Regions
标签附近的 + 按钮创建新区域; - 在创建区域向导中,选择
Form
-Form on a procedure
- 在接下来的步骤中选择您的 procedure/function 并填写其他必填字段。
Apex 将创建一个表单,其中包含每个 procedure/function 参数的字段以及按钮 Run
(我不记得确切的名称)和 Cancel
.
- 你的第二个问题有点大。首先,这取决于您的身份验证方案。有很多选项:数据库帐户、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);