将 Oracle 连接到 SQL Server

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/4833409/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-18 22:34:51  来源:igfitidea点击:

Connect Oracle to SQL Server

sql-serveroraclelinked-server

提问by Naveen Chakravarthy

I am trying to connect Oracle 9i database using SQL Management studio 2008.

我正在尝试使用 SQL Management Studio 2008 连接 Oracle 9i 数据库。

I tried this but it doesn't work

我试过这个,但它不起作用

EXEC sp_addlinkedserver 'OracleLinkedServer','Oracle','OraOLEDB.Oracle','TestDB';

EXEC sp_addlinkedsrvlogin 'OracleLinkedServer','false','SA','TestUsername','TestPassword';

I am able to create the linked server and it test correctly,

我能够创建链接服务器并正确测试,

But when I execute this statement:

但是当我执行这个语句时:

SELECT sysdate FROM OracleLinkedServer...dual;

...it gives an error:

...它给出了一个错误:

Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "OraOLEDB.Oracle" for linked server "OracleLinkedServer" reported an error. Provider caused a server fault in an external process.

Msg 7311, Level 16, State 2, Line 1
Cannot obtain the schema rowset "DBSCHEMA_TABLES" for OLE DB provider "OraOLEDB.Oracle" for linked server "OracleLinkedServer". The provider supports the interface, but returns a failure code when it is used.

消息 7399,级别 16,状态 1,第 1 行
链接服务器“OracleLinkedServer”的 OLE DB 提供程序“OraOLEDB.Oracle”报告错误。提供程序在外部进程中导致服务器故障。

消息 7311,级别 16,状态 2,第 1
行无法获取链接服务器“OracleLinkedServer”的 OLE DB 提供程序“OraOLEDB.Oracle”的架构行集“DBSCHEMA_TABLES”。提供者支持该接口,但在使用时返回失败代码。

回答by vaheeds

You should UNCHECKED the Allow inprocessin OraOLEDB.Oracle provider under the Linked Servers node.

您应该取消Allow inprocess选中链接服务器节点下的 OraOLEDB.Oracle 提供程序。