: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.doe
和 johny.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 用户更多的安全权限,这将使导出和导入的噩梦。
我想在选择数据库语句的查询中使用会话变量 :APP_USER
,如下所示:
select * from :APP_USER.data
我有用户 john.doe
和 johny.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 用户更多的安全权限,这将使导出和导入的噩梦。