Я использую 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 точно такой же, иИспользуемые мной денентиалы действительны.