Oracle - 在第二个链接服务器上使用链接服务器

时间:2016-11-02 10:21:54

标签: oracle oracle11g dblink

我想知道如何(如果可能)在Oracle服务器之间的第二个数据库链接上使用数据库链接。

我有这种情况:

  • 服务器A是我自己的服务器,与服务器B链接。
  • 服务器B与服务器C链接。
  • 它们都是Oracle服务器,所有版本都相同(11)。
  • 他们通过互联网和VPN连接,在不同的国家/地区。
  • 我无法直接从服务器A创建链接服务器到服务器C.

这适用于服务器A:

SELECT * from TABLE@Server_B

这适用于Server_B:

SELECT * from TABLE@Server_C

这不适用于服务器A,但逻辑上是我想做的事情:

select * from TABLE@Server_B@Server_C

我知道我可以在服务器B上创建一个到服务器C上的表的视图,并在服务器A上使用它。但我还需要更新第三台服务器上的一些表。

有可能这样做吗?如果是,怎么样?

1 个答案:

答案 0 :(得分:1)

您可以在服务器B上创建指向服务器C上的远程表的同义词。如果服务器C表被调用table_c,那么在服务器B上您可以执行以下操作:

create synonym table_c_syn for table_c@server_c;

然后在服务器A上你可以这样做:

select * from table_c_syn@server_b;

您可以更新/插入,假设用于数据库链接的用户具有正确的权限:

insert into table_c_syn@server_b(cola, colb, ...) values (val1, val2, ...);