从SQL Server2008 R2中的链接服务器(Oracle)运行查询

TTC*_*TCG 4 oracle linked-server sql-server-2008

我在SQL Server 2008中设置了链接服务器.但我无法对链接服务器运行任何查询.

在此输入图像描述

我试图运行这个简单的命令,但它不起作用

SELECT * FROM MYSERVER..ALANH.TEMP_UPDATE1
Run Code Online (Sandbox Code Playgroud)

这是我运行上面命令时得到的错误.

Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "OraOLEDB.Oracle" for linked server "MYSERVER" reported an error. The provider did not give any information about the error.
Msg 7312, Level 16, State 1, Line 1
Invalid use of schema or catalog for OLE DB provider "OraOLEDB.Oracle" for linked server "MYSERVER". A four-part name was supplied, but the provider does not expose the necessary interfaces to use a catalog or schema.
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我连接到OracleLinkedServer吗?非常感谢.

fas*_*asr 10

你也可以这样:

**SELECT * FROM OPENQUERY(MYSERVER, 'SELECT * FROM ALANH.TEMP_UPDATE1')**
Run Code Online (Sandbox Code Playgroud)


Сер*_*гей 5

您可以像这样编写查询:

select * FROM [MYSERVER]..[ALANH].[TEMP_UPDATE1]
Run Code Online (Sandbox Code Playgroud)

重要提示:在这种情况下,完全限定的表名必须大写。


Ric*_*ard 1

您可以尝试本文中的修复。

此外,这可能是命名问题。来自MS 知识库文章

如果您收到这些错误消息,则 Oracle 架构中可能缺少表,或者您可能没有该表的权限。验证模式名称是否已使用大写形式键入。表和列的字母大小写应与 Oracle 系统表中指定的相同。

在Oracle端,创建的表或列不带双引号会以大写形式存储。如果表或列用双引号引起来,则表或列按原样存储。