通过间接 Oracle DB Link 访问

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

我们有 3 个 Oracle 19c 站点。为了简单起见,将它们称为 SiteA、SiteB 和 SiteC。 SiteB 的实例具有指向 SiteA 的数据库链接; SiteC 上的实例具有到 SiteB 的 DBLink。但是,没有从 SiteC 到 SiteA 的 dblink。有没有办法直接从 SiteC 的实例访问 SiteA 的实例,而不需要创建另一个 DB Link ?

我尝试使用2个@来引用2个数据库链接,但这显然不是正确的语法: 例如。表@site_a@site_b

oracle dblink
1个回答
1
投票

一般来说,不,你不能按照你所描述的方式做到这一点。唯一的方法是在 site_b 中创建中间视图,通过第二个 dblink 指向 site_a。

在 site_b 中:

create view table_a as select * from table@site_a;

然后在site_c:

select * from table_a@site_b;

不建议使用此方法,因为您将在每个查询的所有三个实例中创建工作负载,使网络延迟加倍,并且您需要在 site_b 中维护新的数据库对象以镜像 site_a 中的数据库对象。也可能存在安全隐患。在大多数方面,创建直接 dblink 会更好。

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