Соединения с Oracle прерваны в SSIS после удаления 32-битной версии клиента Oracle - PullRequest
0 голосов
/ 18 февраля 2019

При попытке проверить мои соединения появляется следующее сообщение:

Не удалось проверить соединение из-за ошибки инициализации провайдера.Поставщик OraOLEDB.Oracle.1 не зарегистрирован на локальном компьютере

У меня изначально была установлена ​​32-битная и 64-битная версия клиента Oracle 12 на моей рабочей машине.Я удалил 32-битную версию, потому что она вызывала некоторые конфликты с другим приложением, но теперь после удаления я больше не могу использовать свои оракульные соединения в SSIS.

Я использую Visual Studio 2017 - я уверен, что яустановлена ​​64-битная версия SSDT, но, похоже, они устанавливаются в папке программ 86x.Я все еще могу подключиться через TOAD, так что, похоже, проблема SSIS, не указывающая на 64-битную установку, я думаю.Могу ли я вручную установить SSIS для указания на 64-битную версию или мне нужно переустановить 32-битную версию?

TSN_Admin установлен в файл oracle12c_64 tsnname.ora.Я также пытался использовать regsvr32.exe для файла oraoledb12.dll, но я получаю сообщение об ошибке, даже после запуска командной строки от имени администратора:

Модуль "OraOLEDB.dll" был загруженсбой вызова DllRegisterServer с кодом ошибки 0x80070005.

Я могу переустановить 32-разрядную версию, но мне нужно подождать, пока ИТ-отдел моей компании сначала утвердит запрос.Могут пройти дни, прежде чем я получу ответ.

1 Ответ

0 голосов
/ 18 февраля 2019

Обновление 1 - 64-разрядная версия Visual Studio

После поиска выглядит, что 64-разрядная версия Visual Studio отсутствует:


Начальный ответ

Я не знаю, есть ли официальная документация для этого, но исходя из моего собственного опыта вам нужно установить oracle32-разрядный клиент на компьютере разработчика , поскольку Инструменты данных SQL Server для Visual studio - это 32-разрядное приложение , и оно не будет работать с 64-разрядным клиентом Oracle.

Но вы можете без проблем выполнить пакет .dtsx, если вы работаете с 64-битным клиентом oracle, вам нужно использовать соответствующий путь DtExec:

32-битный

C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DtExec.exe

64-bit

C:\Program Files\Microsoft SQL Server\100\DTS\Binn\DtExec.exe

Во время поиска я нашел много других ссылок, которые разделяют это мнение:

...