Sql server ORA-00942:从异构服务的表中选择内容时,表或视图不存在

Sql server ORA-00942:从异构服务的表中选择内容时,表或视图不存在,sql-server,database,oracle,heterogeneous,ora-00942,Sql Server,Database,Oracle,Heterogeneous,Ora 00942,我需要从SQL Server数据库中可用的表中选择Oracle数据库中的表数据。因此,我创建了一个指向此Oracle数据库的数据库链接,如中所述 数据库链接工作正常,因为我可以使用以下命令显示此数据库链接中的所有表: select * from all_tables@mssql_link 例如,我得到一个表,表名为“adr”,所有者为“dbo” 因此,如果我试图通过 select * from dbo.adr@mssql_link 或通过 select * from "dbo"."adr

我需要从SQL Server数据库中可用的表中选择Oracle数据库中的表数据。因此,我创建了一个指向此Oracle数据库的数据库链接,如中所述

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

select * 
from all_tables@mssql_link
例如,我得到一个表,表名为“adr”,所有者为“dbo”

因此,如果我试图通过

select * from dbo.adr@mssql_link 
或通过

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

我总是遇到Oracle异常:

ORA-00942:表或视图不存在
[Microsoft][ODBC SQL Server驱动程序][SQL Server]对象名称“DBO.ADR”无效。{42S02,NativeErr=208}[Microsoft][ODBC SQL Server驱动程序][SQL Server]语句无法准备。{42000,NativeErr=8180}
ORA-02063:MSSQL_链路的前2行

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


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

试试openquery函数,如下所示:

select * from openquery(mssql_link, 'Select * from adr')

我不知道SQLServer的情况,但是如果这发生在Oracle db上,您的用户就没有对该表的select访问权。您的链接已设置为以特定用户身份连接。该用户是否有适当的权限访问该表。不幸的是,我在执行该命令时收到一个ORA-00933 SQL命令未正确结束的异常。引号中的内容正是Oracle中的内容。
select * from openquery(mssql_link, 'Select * from adr')