我找到了很多类似的文章,但没有一个完全涵盖了我所需要的。我没有设计table,也不能修改它。我仅限于只读角色。
我在根架构中有一个信息表。我们称之为SchemaRoot。在信息表中,它包含一个字段,其中包含每条记录的附加模式。
Info.RootSchema
| 架构名称|项目所有者| ProjectOwner |
| --|--| ------------ |
| 项目1|鲍勃| Bob |
| 项目2|拉里| Larry |
然后所有的项目信息都在它自己的Schema中。
ProjectInfo.Project1或ProjectInfo.Project2
| 项目详情2|项目详情3| ProjectDetail3 |
| --|--| ------------ |
| 废话|废话| Blah |
| 废话|废话| Blah |
我需要能够查询的RootSchema和SubSchema的在一个查询。
所以我需要一些东西。
| 项目详情1|项目详情2|项目详情3| ProjectDetail3 |
对于Info. RootSchema中的每个项目。
1条答案
按热度按时间dgjrabp21#
不好意思,但我不确定我们在这里说的是Oracle。你到底把什么叫做“模式”?在Oracle数据库中,我们创建了一个 user,然后该用户创建了它的表、视图、过程等,因此user +它的所有对象代表了一个 schema。我想这就是你想说的。
有一个“主”模式(
root
),而每个项目都有自己的模式(project1
、project2
等)。如果任何用户希望访问其他用户拥有的数据-例如,在您的情况下,
root
用户将选择名为project1
、project2
等的用户拥有的数据。- 则这些用户必须向root
授予某些权限。因此,你会
字符串
然后,以
root
身份连接并访问其他用户拥有的数据,方法是在表名前面加上其所有者(例如,project1.projectinfo
-而不是反之亦然,这是您张贴的内容-如果我没说错的话),或者通过创建同义词型
对于示例数据:
型
你会得到
型
这几乎是一个“硬编码”的解决方案。是否可以“动态”完成?是的;一个选项是创建一个函数,该函数组成
select
语句,用作引用游标的源。举例来说:型
测试:
型
如果不是这样的话,那我显然听不懂你在说Oracle。