Database 创建新的Oracle Application Express(APEX)

Database 创建新的Oracle Application Express(APEX),database,oracle,server,oracle-apex-5,Database,Oracle,Server,Oracle Apex 5,让我解释一下我的情况。 现在我需要创建一个新的APEX应用程序。但是我没有使用APEX SQL Workshop(图1)作为数据库。正在通过包检索数据。 请参考图2中的层次结构设计。从层次结构中,数据存储在D1EDATA的表_A中。D1EDATA有一个名为package_a的包。D1APEX是应用程序。它调用包来选择、更新或删除存储在表A中的记录 图1:开发环境 图2:应用程序架构设计 我的问题如下: 如何从APEX应用程序调用包中的函数/过程 如何获取登录的用户id。哪个表存储APEX用

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

图1:开发环境

图2:应用程序架构设计


我的问题如下:

  • 如何从APEX应用程序调用包中的函数/过程
  • 如何获取登录的用户id。哪个表存储APEX用户详细信息
  • 第一个问题很简单:要在apex应用程序中运行函数/过程,必须执行以下操作:
    • 在应用程序中创建页面(或使用以前创建的页面)
    • 单击
      区域
      标签附近的+按钮创建新区域
    • 在创建区域向导中,选择过程上的
      表单
      -
      表单
    • 在接下来的步骤中,选择您的程序/功能并填写其他必填字段
  • Apex将创建一个表单,其中包含每个过程/功能参数的字段,以及按钮
    Run
    (我不记得确切的名称)和
    Cancel

  • 你的第二个问题很重要。首先,这取决于您的身份验证方案。有很多选项:数据库帐户、APEX帐户、自定义、LDAP和许多其他选项。
    • 数据库帐户-使用数据库帐户登录到应用程序。在这种情况下,apex在系统oracle表中使用登录名和密码
    • APEX帐户-使用开发者帐户登录APEX IDE,使用相同的帐户登录应用程序
    • 自定义方案-您自己创建所有表、检查用户登录和密码的过程等
  • UPD
    您可以使用
    v
    函数:
    v('APP\u user')
    在PL/SQL代码中定义用户的名称(无论当前的身份验证方案如何)。但请记住,如果您不是从APEX应用程序调用此函数,它将返回
    NULL
    。有一种通用的方法来调用它(在
    UPDATE
    语句中):


    嘿,谢谢你的回复。关于问题2,示例是:用户在APEX应用程序中更新记录。当用户单击submit按钮时,APEX将调用D1APEX界面中的过程a,过程a将调用D1EDATA中的过程B以更新特定记录。对于我的情况,我想用用户名更新UpdatedBy列Toad@Jonas您想知道,如何在PL/SQL中获取APEX用户的名称,对吗?类似这样的内容:
    updatemt_table set username=v('APP_USER')
    如果我想在Oracle APEX中获取用户名,我可以使用类似于update_模板的代码(p_last_update_by=>:USER)?否,APEX中用户名为的参数是
    APP\u user
    ,而不是
    user
    。我已在SQL Workshop中从dual执行
    select v('user'),它也返回登录名
    
    update mt_table set username = nvl(v('APP_USER'), user);