我们在Oracle数据库中有一个现有的数据库链接,它链接到Sql Server数据库中的数据。现在,第二个Oracle数据库需要使用相同的数据。由于安全设置,第二个Oracle数据库无法“看到”Sql Server数据库,但它可以看到第一个Oracle数据库。
如果我们在第二个Oracle数据库中创建指向第一个Oracle数据库的数据库链接,我们是否可以通过2个数据库链接从第二个Oracle数据库中的Sql Server数据库查询数据?查询语法是这样的:
SELECT * FROM myTable@2ndLink@1stLink
以前有人做过这样的事吗?
答案 0 :(得分:3)
Vincent的解决方案将起作用,另一种解决方案是创建同义词而不是视图。
DB1:
CREATE SYNONYM X FOR MyTable@sqlServerDB
DB2:
(assumes db link to DB1 connects as owner of synonym)
SELECT * from X@DB1
答案 1 :(得分:2)
我不确定这个synthax会起作用(尽管测试它会很有趣我现在不能这样做)。但是,即使它不起作用,您仍然可以在数据库1中创建一个指向SQL Server数据库中的表的视图。从数据库2,您可以查询:
SELECT * FROM myView@db1
这将指向正确的表格。