Соединения Oracle разорваны в SSIS после удаления 32-битной версии клиента oracle

Я получаю следующее сообщение об ошибке, когда пытаюсь проверить свои соединения:

Не удалось выполнить тестовое подключение из-за ошибки при инициализации провайдера. Поставщик «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-битную версию, но сначала мне нужно дождаться, пока ИТ-отдел моей компании одобрит запрос. Могут пройти дни, прежде чем я получу ответ.


person Lozik    schedule 18.02.2019    source источник
comment
Какое значение установлено для параметра Run64BitRuntime? Щелкните Проект -> Свойства. Затем слева в разделе «Параметры конфигурации» нажмите «Отладка», и вы увидите этот параметр.   -  person Tim Mylott    schedule 18.02.2019
comment
Забыл упомянуть об этом. Я попытался установить это свойство с false на true, но изменений не произошло.   -  person Lozik    schedule 18.02.2019
comment
Это не связано с Run64BitRuntime, проверьте мой ответ для более подробной информации   -  person Hadi    schedule 18.02.2019
comment
TOAD использует только ядро ​​oci.dll, но не драйвер OLE DB (или любой другой драйвер, такой как ODBC или поставщик данных Oracle для .NET). TOAD доступен для 32-битной и 64-битной версии, проверьте, какая версия у вас установлена.   -  person Wernfried Domscheit    schedule 19.02.2019


Ответы (1)


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

После поиска похоже, что 64-битной версии Visual Studio нет:


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

Я не знаю, есть ли для этого официальная документация, но, исходя из моего собственного опыта, вам необходимо установить 32-разрядную версию клиента oracle на машине разработки, потому что инструменты данных 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-разрядная

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

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

person Hadi    schedule 18.02.2019
comment
Спасибо тебе за этот пост. Мне удалось переустановить 32-разрядную версию, что устранило все проблемы, которые у меня были с SSIS в Visual Studio. Полезно знать, что vs полагается строго на 32-битный оракул. - person Lozik; 18.02.2019
comment
Да, Visual Studio 32-битная. Таким образом, вам также нужен 32-битный клиент Oracle - по крайней мере, если вы хотите использовать встроенные мастера и т. д. Если вы компилируете свое приложение как 64-битное, вам нужен 64-битный клиент Oracle. - person Wernfried Domscheit; 19.02.2019