database - 创建新的 Oracle Application Express (APEX)

标签 database oracle server oracle-apex-5

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

图1:开发环境

enter image description here

图 2:应用架构设计

enter image description here


我的问题如下:

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

最佳答案

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

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

  1. 你的第二个问题很大。首先,这取决于您的身份验证方案。有很多选项:数据库帐户、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/

相关文章:

mysql - 如何在 SQL 表中表示 X 和 Y 轴数据

mysql - 选择 Bookshelf、MySQL、Knex 在 node.js 上创建的两个日期之间的对象

oracle - 如何将 SYS_GUID() 转换为 varchar?

java - 如果所有子记录中的字段都相同,如何选择字段值

c - 文件 IO 段错误

vue.js - Vue 应用程序在通过 npm 的 serve 函数提供服务时工作,但在通过 golang net/http 包提供服务时出现空白页面

database - Elixir Phoenix 更新嵌套多对多关联

mysql - 关于重复键更新 sqlite FMDB

linux -/etc 和/home 分区所有权更改和回滚

java - 如果服务器崩溃,我应该如何处理?