创建视图以根据当前架构选择不同的表

问题描述 投票:0回答:1

所以我在两个不同的模式中有两个相似的表,例如。 schema1.TableA 和 schema2.TableA。 在我的应用程序中,还有另外两个模式可以选择访问这两个表。 是否可以创建一个视图,当当前架构为 Schema3 时,该视图应从 schema1.TableA 返回数据,而当当前架构为 Schema4 时,该视图应从 schema2.TableA 返回数据? 或者oracle中有没有其他方法可以实现这一点?

oracle view
1个回答
0
投票

向适当的用户授予从架构中进行选择的权限,然后为每个用户创建同义词:

GRANT SELECT ON SCHEMA1.TABLEA TO SCHEMA3;
GRANT SELECT ON SCHEMA2.TABLEA TO SCHEMA4;
CREATE SYNONYM schema3.tableA FOR SCHEMA1.tableA;
CREATE SYNONYM schema4.tableA FOR SCHEMA2.tableA;

然后您应该能够将

SELECT * FROM tableA
用作
schema3
schema4
,它将从每个模式中适当的表/视图中获取数据。

© www.soinside.com 2019 - 2024. All rights reserved.