Sql 当用户是多个组的成员时,如何根据用户组过滤APEX网格中的数据?
我正试图根据分配给一个或多个用户组的任务筛选APEX报告中的数据。用户组名称用作报表中的变量,允许筛选每一行 例如,使用以下数据:Sql 当用户是多个组的成员时,如何根据用户组过滤APEX网格中的数据?,sql,oracle-apex,Sql,Oracle Apex,我正试图根据分配给一个或多个用户组的任务筛选APEX报告中的数据。用户组名称用作报表中的变量,允许筛选每一行 例如,使用以下数据: ID ---------- NAME --------- Group 0001 John ADMR 0002 John APRC 0024 Bob ADMR 0011 Bob APRC 0045
ID ---------- NAME --------- Group
0001 John ADMR
0002 John APRC
0024 Bob ADMR
0011 Bob APRC
0045 John ADMR
(
','||apex_util.get_groups_user_belongs_to(:app_user)||',' like '%,ADMR,%'
and
','||apex_util.get_groups_user_belongs_to(:app_user)||',' like '%,APRC,%'
and
(group = 'ADMR' or group = 'APRC')
)
但执行此操作时,不会显示任何数据
在我看来,一般解决方案将在以下情况下使用:
group in (','||apex_util.get_groups_user_belongs_to(:app_user)||','))
但执行此操作时,不会显示任何数据
要工作,它应该与
group in ('ADMR','APRC')
没有错误消息。感谢@romeuBraga提供的框架。下面的操作有效(我必须添加修剪功能) 也许这会有帮助,或者
group in ('ADMR','APRC')
where GROUP in (
SELECT trim(regexp_substr(','||apex_util.get_groups_user_belongs_to(:APP_USER)||',', '[^,]+', 1, LEVEL))
FROM dual
connect by regexp_substr(
('ADMR, APRC')
, '[^,]+', 1, level)
is not null
);