1

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

图 1:开发环境

在此处输入图像描述

图 2:应用架构设计

在此处输入图像描述


我的问题如下:

  1. 如何从 APEX 应用程序调用包中的函数/过程?
  2. 如何获取登录的用户 ID。哪个表存储 APEX 用户详细信息?
4

1 回答 1

1
  1. 第一个问题很简单:要在 apex 应用程序中运行函数/过程,您必须执行以下操作:
    • 在您的应用程序中创建一个页面(或使用以前创建的)
    • 单击标签+附近的按钮Regions以创建新区域;
    • 在创建区域向导中,选择Form-Form on a procedure
    • 在接下来的步骤中,选择您的程序/功能并填写其他必填字段。

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

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

UPD您可以使用以下功能
在 PL/SQL 代码中定义用户名(无论当前身份验证方案如何):. 但请记住,如果您不是从 APEX 应用程序调用它,此函数将返回 。有一种通用的方式来调用它(在声明中):vv('APP_USER')NULLUPDATE

update mt_table set username = nvl(v('APP_USER'), user);
于 2016-02-01T12:30:26.193 回答