Oracle11g 在apex oracle中的选择中,在不同条件下禁用“where”

Oracle11g 在apex oracle中的选择中,在不同条件下禁用“where”,oracle11g,oracle-apex,Oracle11g,Oracle Apex,看看apex oracle中的me t交互式报告,我有按数据区域进行选择的功能。我还有一个电子表格,里面有一个角色栏,因为角色是30,这意味着用户是管理员。我想,当在程序中的管理员选择是不需要的。那我该怎么办 选择ID, 数据 名称 来自SEC_传输_密封件 其中data\u area=从SEC\u USERS\u列表中选择名称,其中login=较低:APP\u USER 按数据描述排序可通过两种方式完成: 备选案文1。将管理员检查直接添加到查询: 这种方法的缺点是,需要在需要检查用户管理访问

看看apex oracle中的me t交互式报告,我有按数据区域进行选择的功能。我还有一个电子表格,里面有一个角色栏,因为角色是30,这意味着用户是管理员。我想,当在程序中的管理员选择是不需要的。那我该怎么办

选择ID, 数据 名称 来自SEC_传输_密封件 其中data\u area=从SEC\u USERS\u列表中选择名称,其中login=较低:APP\u USER
按数据描述排序可通过两种方式完成:

备选案文1。将管理员检查直接添加到查询: 这种方法的缺点是,需要在需要检查用户管理访问权限的任何地方添加代码

备选案文2。申请项目 在共享组件下创建应用程序项,例如用户角色ID

在将用户角色ID设置为查询结果的共享组件下创建应用程序计算,例如

select u.role from user_table u where u.login = lower(:APP_USER)
现在,您可以在任何地方引用用户的角色,例如

select ID,
       DATA,
       NAME
  from SEC_TRANSFER_SEALS
where  (data_area = (select name from SEC_USERS_LIST where login =   LOWER(:APP_USER) )
or :USER_ROLE_ID=30 )
order by data desc
select ID,
       DATA,
       NAME
  from SEC_TRANSFER_SEALS
where  (data_area = (select name from SEC_USERS_LIST where login =   LOWER(:APP_USER) )
or :USER_ROLE_ID=30 )
order by data desc