:APP_USER 在 SQL 查询中的用法。 Oracle Application Express (Apex) 5.0.4

:APP_USER usage in SQL query. Oracle Application Express (Apex) 5.0.4

我想在选择数据库语句的查询中使用会话变量 :APP_USER,如下所示:

select * from :APP_USER.data

我有用户 john.doejohny.b。 我有 table john.doe.data,我想从这个 table 中获取所有数据。我还有 table johny.b.data,当 johny.b 登录时,我想从 table johny.b.data.

获取数据

我希望你能理解我的计划,就像每个用户都有自己的数据table,我想根据登录用户显示table。这样做的正确方法是什么?

我会说这是可能的,但不应该这样做。你最好做 select * from apex_user.table (不需要前缀) where column = :APP_USER 并将它们全部放在一个大 table 或有不同的 table(但相同 apex_schema)每个用户。如何创建这个 table 取决于你 - 你可以 select 来自 dual 的伪 table 然后只在必要时创建它以防止任何 table未发现问题。

你毫无疑问 运行 进入 table 空间权限问题或更糟 - 如果你沿着你的预期路线前进,给 apex 用户更多的安全权限,这将使导出和导入的噩梦。