Получение этой ошибки при выполнении запроса SQL Server только при подключении через удаленный рабочий стол.
При запуске запроса с рабочего стола проблем нет. Это проблема tsnNames?
Связанный сервер с Oracle 9i
Сервер: Сообщение 7399, уровень 16, состояние 1, строка 1 Поставщик OLE DB «MSDAORA» сообщил об ошибке.
[Поставщик OLE / DB вернул сообщение: неизвестная ошибка] [Поставщик OLE / DB вернул сообщение: ORA-01041: внутренняя ошибка. hostdef extension не существует] трассировка ошибки OLE DB [поставщик OLE / DB 'MSDAORA' ICommandText :: Execute вернул 0x80004005:].
Вот информация об одном из моих контактов:
Product name: Oracle
Data source: xxxx.world
Provider string: MSDAORA
Я использовал драйвер Oracle 9i для DSN
Вот запись tnsnames:
xxx.world =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(COMMUNITY=tcp.world)
(PROTOCOL=tcp)
(HOST=gvx0aidwh01p.xxxx.com)
(PORT= 1521)
)
)
(CONNECT_DATA=
(SID=idwp5)
)
)
Я бы не подумал, что это TNSNAMES
проблема, если он работает с вашего рабочего стола. Все подключения к связанному серверу выполняются относительно экземпляра SQL Server. То есть файл TNSNAMES настроен на машине, на которой размещен SQL Server, так что связанный сервер может найти соответствующую запись. Если он работает в одном месте, он должен работать везде.
Я настроил несколько серверов, связанных с Oracle, но я не эксперт по Oracle. Я немного покопался и нашел это в ссылке на код ошибки Oracle:
ORA-01041: внутренняя ошибка. расширение hostdef не существует
Причина: указатель на расширение hstdef в hstdef равен нулю.
Действие: Сообщить об ошибке
Возможно, вам нужно позвонить в службу поддержки Oracle.
Если бы вы также могли предоставить нам некоторую информацию о конфигурации связанного сервера, мы могли бы обнаружить что-то еще.