首页 > 解决方案 > 根据用户过滤交互式报表中的数据

问题描述

 select 
 case
 when :app_user = "John.Doe" THEN select * from time_test 
 when :app_user !="John.Doe" then select * from time_test where :app_user 
 =:app_user 
 end 
 from time_test ;

此表本身就是一个页​​面上的交互式报告。我希望每个人都看到交互式报告,但我只希望 John Doe 看到整个表格。其他人只能在表格中看到他们的记录。

":app_user" 是 Oracle Apex 的默认绑定变量。我还尝试过滤表中的字段。

 select 
 case
 when :app_user = "John.Doe" THEN select * from time_test 
 when :app_user !="John.Doe" then select * from time_test where **name** 
 =:app_user 
 end 
 from time_test ;

并且

 select 
 case
 when name = "John.Doe" THEN select * from time_test 
 when name !="John.Doe" then select * from time_test where :app_user 
 =:app_user 
 end 
 from time_test ;

我不能使用 if 语句,因为它需要以 Select 开头才能加载到页面上。

标签: oracleoracle-apex

解决方案


简单过滤:

select * 
from time_test 
where col_name =:app_user OR :app_user = 'John.Doe';

推荐阅读