我想在选择数据库语句中使用会话变量:APP_USER
,如下所示:
select * from :APP_USER.data
我有用户john.doe
和johny.b
。
我有表john.doe.data
,我想从这个表中获取所有数据。我还有表johny.b.data
,当johny.b
登录时,我想从表johny.b.data
获取数据。
我希望你理解我的计划,所以就像每个用户都有自己的数据表,我想根据登录用户显示表。什么是正确的方法呢?
答案 0 :(得分:1)
我想说这是可能的,但不应该这样做。你最好从apex_user.table(不需要前缀)中执行select *,其中column =:APP_USER并将它们全部放在一个大表中或者每个用户有一个不同的表(但是相同的apex_schema)。你如何创建这个表取决于你 - 你可以从双选择一个伪表,然后只在必要时创建它以防止任何表找不到问题。
毫无疑问,你会遇到表空间权限问题,或者更糟糕的是 - 给你的顶点用户提供比你想要的路线更多的安全权限,这将导致导出和导入噩梦。