【发布时间】:2011-01-23 12:23:14
【问题描述】:
我主要是预言机新手,如果这是一个愚蠢的问题,请原谅我......
我有一个名为“CODE”的架构,其中包含一个执行任意 SQL 的存储过程(现在,请忽略与此相关的潜在安全问题)。传入的 SQL 会选择数据;但所有数据都驻留在架构 A、B 或 C 中 - 但 SQL 一次只能从一个架构中进行选择。
例如:A 类型的用户创建一个字符串“SELECT * FROM A.USERTABLE” - 而 B 类型的用户创建一个字符串“SELECT * FROM B.USERTABLE”。
我想要做的是允许用户不明确指定他们的架构。在前端 .net 应用程序中;我已经知道它们是类型 A、B 还是 C。我希望所有三个都简单地输入“SELECT * FROM USERTABLE”。
我遇到的问题是我不知道该怎么做。我的应用程序只能在“CODE”架构中执行 proc - 所以我不能只是复制代码并让用户 A 调用“A.ExecuteSQL”。
我已经尝试了一些东西;但到目前为止没有任何效果。我希望 ExecuteSQL 过程保留在 CODE 模式中;但是当 'USERTABLE' 被传入时,我需要它知道有时这意味着 A.USERNAME,有时意味着 B.USERNAME。
有什么建议吗?
【问题讨论】:
标签: sql oracle plsql schema oracle11g