首页 > 解决方案 > Oracle APEX 表/查看器所有者下拉列表

问题描述

如何编辑下拉菜单中出现的模式,以便为新表、表单等选择表所有者?我已经在 APEX 内部添加了我想要的模式。创建新应用程序时,我将所有模式都视为选项,但在同一工作区中的其他应用程序的下拉列表中却没有。我还看到未分配给此工作区的架构选项。这份名单来自哪里? 在此处输入图像描述

标签: oracleschemaoracle-apex

解决方案


看起来该列表是这样一个选择的结果

SELECT DISTINCT
  owner
  FROM
  all_tables
  WHERE owner NOT IN (<any of the internal oracle schemas like sys, system, ctxsys, etc>)
UNION 
SELECT DISTINCT
  owner
  FROM
  all_views
  WHERE owner NOT IN (<any of the internal oracle schemas like sys, system, ctxsys, etc>)
;

此选择以拥有该应用程序的数据库用户身份运行。要对此进行测试:假设应用程序归 SCOTT 所有,并且架构 HR 存在但不在下拉列表中。将 HR 模式中的表上的选择权限授予 SCOTT。观察 HR 现在出现在下拉列表中。

从应用程序的角度来看,这是有道理的 - 此选择向您显示具有当前模式可以访问的对象的模式。如果您可以选择其中没有任何表,那么显示模式有什么用?


推荐阅读