oracle - 根据用户过滤交互式报表中的数据
问题描述
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 开头才能加载到页面上。
解决方案
简单过滤:
select *
from time_test
where col_name =:app_user OR :app_user = 'John.Doe';
推荐阅读
- python - 如何使用 Pycharm 运行 fast-api 服务器?
- node.js - 当我尝试使用 uuid 包时,如何解决“意外令牌'导出'”错误?
- pandas - Pandas Correlation - 如何使用 df.corr() 忽略两列中的 0
- spring-webflux - 在 Spring Gateway 预过滤器中检查数据库的访问权限
- python - 异步 WebDriverWait until 在 Python 的 selenium
- reactjs - 太多的重新渲染。设置状态时
- c# - 获取与类型关联的所有命名空间?
- php - 错误不能使用 Omnipay\Stripe\Message\Response 类型的对象作为数组
- ios - 如何在 Xcode 中创建两个静态库,其中一个依赖于另一个?
- reactjs - handleSubmit 功能在 React 的功能组件中不起作用