Подключение из Excel VBA к Oracle DB с помощью ADODB больше не работает - PullRequest
0 голосов
/ 06 августа 2020

Я установил Oracle 32-разрядный поставщик OLE DB (32-разрядный Oracle Компоненты доступа к данным (ODA C)). У меня на машине только один клиент Oracle (Windows 10 64 бит). Мои переменные среды в порядке.

Что очень странно, так это то, что этот параметр работал нормально до сих пор (примерно 5 лет), и внезапно я получил ошибку:

Provider cannot be found. It may not be properly installed

В моей строке подключения было:

Provider=Oracle Provider for OLE DB (equivalent to Provider=OraOLEDB.Oracle)

Затем, когда я сменил поставщика на Microsoft OLE DB Provider для Oracle (эквивалент MSDAORA), я получил ошибку

Error while trying to retrieve text for error ORA-01019

Я пробовал много разных строк подключения, переустанавливал клиент, перезагружался, менял переменные env и т. Д. c. Ничего не получилось. Теперь я полагаю, что это может быть связано с некоторыми обновлениями Windows. Это меня действительно убивает, потому что из-за него все разработчики, которые я делал в Excel с использованием объектов ADODB, устарели ... у кого-нибудь есть решение?

1 Ответ

0 голосов
/ 19 августа 2020

Обнаружено, что компоненты ODA C не были правильно установлены.

  • Сначала я удалил продукты формата ODA C, используя файл uninstall.bat с командой all (см. ODA C help)
  • Я удалил все переменные env, связанные с Oracle (включая PATH) для пользователя sys и обычного пользователя.
  • Затем я переустановил, используя последнюю версию ODA C (который, кстати, довольно старый) и строго следуя процессу, описанному в файле справки. Обе строки подключения работали после перезагрузки.

Одним из ключевых моментов было добавление пути bin к переменной env PATH. Так, например, если ваши компоненты ODA C установлены в c: \ oracle, вам нужно добавить оба каталога c: \ oracle И c: \ oracle \ bin в переменную PATH, чтобы он работает правильно.

Загадка в том, что он годами работал без этого каталога bin в PATH и внезапно перестал работать (но иногда он работал случайно!). Как было сказано ранее, я думаю, что это может быть связано с некоторыми пакетами обновлений, которые изменили способ Windows рассмотрения переменных env.

Ура,

Пол

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...