【发布时间】:2019-03-29 07:00:34
【问题描述】:
我正在使用 SQL Server 2017 并尝试将链接服务器设置为 Oracle 数据库。我安装了 ODAC 并更新了我的 PATH 以包含来自 ODAC 安装的 Oracle 根目录。
一切看起来都不错,我可以在设置服务器时为 OLE DB 选择 Oracle 提供程序,但是当我保存我的配置时,我收到以下错误:
====================================
已创建链接服务器,但连接测试失败。是否要保留链接服务器?
====================================
执行 Transact-SQL 语句或批处理时发生异常。 (Microsoft.SqlServer.ConnectionInfo)
节目地点:
在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType, Boolean retry) 在 Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(字符串 cmd,布尔重试) 在 Microsoft.SqlServer.Management.Smo.LinkedServer.TestConnection() 在 Microsoft.SqlServer.Management.SqlManagerUI.LinkedServerProperties.DoPreProcessExecution(RunType runType, ExecutionMode& executionResult)
====================================
无法为链接服务器“UDW”创建 OLE DB 提供程序“OraOLEDB.Oracle”的实例。 (.Net SqlClient 数据提供者)
服务器名称:本地主机 错误号:7302 严重性:16 状态:1 过程:sp_testlinkedserver 行号:1
节目地点:
在 Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction action, Object execObject, DataSet fillDataSet, Boolean catchException) 在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType, Boolean retry)
此错误消息并不完全有帮助,如果您点击 Microsoft 链接,它会将您重定向到 Microsoft 主页(感谢 Microsoft!)
有没有办法测试这是否是在 Oracle 服务器上找不到 TNSNAMES 与某种防火墙问题的问题?
我能够在同一网络中的另一个数据库上设置 LinkedServer,因此我可以确认 TNSNAMES 完全相同并且我使用的凭据有效。
【问题讨论】:
标签: sql-server oracle linked-server tnsnames