У меня есть старая 32-разрядная программа, которая подключается к базе данных Oracle, но работает только с драйвером Microsoft ODBC для Oracle. Он не работает с более современным встроенным драйвером Oracle ODBC.

Я установил Oracle Instant Client (32-разрядные и 64-разрядные версии на мой 64-разрядный ПК с Win 7), каждая в разные каталоги ORACLE_HOME.

Однако, когда я пытаюсь подключиться через ODBC с драйвером Microsoft, я получаю сообщение об ошибке:

Клиент Oracle(tm) и сетевые компоненты не найдены. Эти компоненты поставляются корпорацией Oracle и являются частью установки клиентского программного обеспечения Oracle версии 7.3 (или выше).

Вы не сможете использовать этот драйвер, пока эти компоненты не будут установлены.

Я могу подключиться к базе данных в порядке с драйвером ODBC от Oracle, поэтому установка выглядит нормально, но, увы, эта программа будет работать только с драйвером ODBC от Microsoft.

Поскольку драйвер Microsoft ODBC, по-видимому, не может найти установку Oracle Instant Client, как мне указать, где искать?

2 ответа2

1

Используемая технология: Windows 7, 32-разрядная версия UFT, источник данных ODBC, указывающий на 32-разрядную C:\Windows\System32\odbcad32.exe , клиент Oracle с установленными 32-разрядными и 64-разрядными версиями.

Что сработало для меня:

  1. Пуск -> поиск «Изменить системные переменные среды»
  2. Системные переменные -> Изменить путь
  3. Поместите путь для 32-разрядного клиента Oracle перед путем для 64-разрядного клиента Oracle. Пример:

    C:\APP\ORACLE\product\11.2.0\client_32\bin;C:\APP\ORACLE\product\11.2.0\client_64\bin
    
0

Оказывается, это довольно просто. Вы должны установить переменную среды PATH чтобы она указывала на ORACLE_HOME который вы хотите использовать.

Для меня я отредактировал PATH добавив в конце ;C:\oracle\instantclient32_12_1 и он работал отлично, перезапуск не требовался.

Для пояснения, указанный мной каталог C:\oracle\instantclient32_12_1 содержит файлы, такие как oci.dll и ociw32.dll и принадлежал 32-разрядной версии Instant Client. Я полагаю, что это не имеет значения для 64-разрядной версии, поскольку 64-разрядная версия Microsoft ODBC отсутствует.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .