SQL Server связан с базой данных Oracle - PullRequest
0 голосов
/ 24 октября 2018

Я использую SQL Server 2017 и пытаюсь настроить связанный сервер с базой данных Oracle.Я установил ODAC и обновил свой PATH, включив в него корень Oracle из установки ODAC.

Все выглядит хорошо, и я могу выбрать поставщика Oracle для OLE DB при настройке сервера, нокогда я сохраняю свою конфигурацию, я получаю следующую ошибку:

==================================

Связанный сервер был создан, но не прошел проверку соединения.Хотите сохранить связанный сервер?

==================================

Исключительная ситуация при выполнении оператора или пакета Transact-SQL.(Microsoft.SqlServer.ConnectionInfo)


Расположение программы:

в Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery (Строка sqlCommand, Тип выполнения ExecutionTypes, тип Boolean).SqlServer.1019 *

=========================================

Невозможно создать экземплярпоставщика OLE DB "OraOLEDB.Oracle" для связанного сервера "UDW".(.Net SqlClient Data Provider)


Для получения справки щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=13.00.5081&EvtSrc=MSSQLServer&EvtID=7302&LinkId=20476


Имя сервера: localhost Номер ошибки: 7302 Уровень серьезности: 16 Состояние: 1 Процедура: sp_testlinkedserverНомер строки: 1


Расположение программы:

в Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql (действие ExecuteTSqlAction, объект execObject, DataSet fillDataSet, Boolean catchException) в Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery (String sqlCommand, ExecutionTypes executeType, Boolean retry)

Это сообщение об ошибке не совсем полезно, и если вы перейдете по ссылке Microsoft, оно перенаправит вас в Microsoftдомашняя страница (спасибо Microsoft!)

Есть ли способ проверить, является ли проблема не обнаружением TNSNAMES по сравнению с какой-либо проблемой брандмауэра на сервере Oracle?

Я могу настроитьLinkedServer в другой базе данных в той же сети, чтобы я мог подтвердить, что TNSNAMES точно такой же, иИспользуемые мной денентиалы действительны.

1 Ответ

0 голосов
/ 24 октября 2018

Ключом к этой проблеме является следующая строка:

Невозможно создать экземпляр поставщика OLE DB "OraOLEDB.Oracle" для связанного сервера "UDW".(Поставщик данных .Net SqlClient)

Решение состоит в том, чтобы перейти к настройкам поставщика и проверить, разрешить ли процесс.Ниже показано:

enter image description here Я не могу точно объяснить, что он делает, но этот парень делает довольно хорошую работу.

...