0

我需要从 SQL Server 数据库中可用的表中选择 Oracle 数据库中的表数据。因此,我创建了一个指向该 Oracle 数据库的数据库链接,如http://www.dba-oracle.com/t_database_link_sql_server_oracle.htm中所述。

数据库链接工作正常,因为我可以使用以下命令显示此数据库链接中的所有表:

select * 
from all_tables@mssql_link

例如,我得到一个表,其中“adr”作为表名,“dbo”作为所有者。

因此,如果我尝试通过以下方式从该表中选择所有内容

select * from dbo.adr@mssql_link 

或通过

select * from "dbo"."adr"@mssql_link 

或者

select * from adr@mssql_link 

我总是得到一个 Oracle 异常:

ORA-00942: 表或视图不存在
[Microsoft][ODBC SQL Server Driver][SQL Server]无效的对象名 'DBO.ADR'。{42S02,NativeErr = 208}[Microsoft][ODBC SQL Server Driver][SQL Server]Statement(s) 无法准备。{42000,NativeErr = 8180}
ORA-02063:前 2 行来自 MSSQL_LINK

我通过创建公共数据库链接 mssql_link 使用“mssql01”连接到由“[PASSWORD]”标识的“[dbUser]”创建了数据库链接;

有人知道那里发生了什么吗?

4

1 回答 1

0

试试 openquery 函数,像这样:

select * from openquery(mssql_link, 'Select * from adr')
于 2017-04-11T17:05:28.770 回答