2011-03-15 19:55:52

Установка Oracle Client под Windows

Oracle Windows

Применимо для Windows XP x32 (Oracle Client Basic 10.2.0.4 + ODBC) и для Windows 7 x64 (Oracle Client Basic 11.1.0.6.0 x32).

В связи с участившимися вопросами "как ставить oracle client" опубликую что-то вроде инструкции из собственного опыта.

Первым делом нужно обзавестись самим клиентом, его можно скачать с сайта Oracle или еще где-то. Понадобится

  • instantclient-basic-win32-XXXX.zip
  • instantclient-odbc-win32-XXXX.zip (если требуется чтобы драйвер Oracle появился в Панель управления → Источники данных (ODBC))

Для работы PHP OCI8 и TOAD вполне будет достаточно только архива instantclient-basic. Приступим.


Распаковываем instantclient-basic-win32-10.2.0.4.zip в нужное место, в моем случае это C:\Program Files\Oracle\instantclient_10_2 (этот путь будет везде использоваться дальше по тексту, так что заменяйте на свой).

Под Windows 7 x64 клиент x32 работает вполне нормально и решает поставленные задачи, но никто не запрещает воспользоваться версией клиента x64. 

Идем в Панель управления → Система → Дополнительно → Переменные среды. Там в разделе "Системные переменные" создаем следующие (имя переменной = значение)

LD_LIBRARY_PATH = C:\Program Files\Oracle\instantclient_10_2
NLS_LANG = RUSSIAN_CIS.CL8MSWIN1251
ORACLE_HOME = C:\Program Files\Oracle\instantclient_10_2
SQL_PATH = C:\Program Files\Oracle\instantclient_10_2
TNS_ADMIN = C:\Program Files\Oracle\instantclient_10_2\network\ADMIN

NLS_LANG может быть другой в зависимости от потребностей.

А к переменной PATH дописываем (не забываем про ;)

PATH += C:\Program Files\Oracle\instantclient_10_2

Теперь создаем папку C:\Program Files\Oracle\instantclient_10_2\network\ADMIN и в ней файл tnsnames.ora , в котором прописываем все SID к которым будем коннектиться.

Для работы клиента требуются DLL

Путем долгих мучений мной было выяснено, что для того чтобы клиент заработал в системе должны присутствовать следующие DLL библиотеки (которых обычно нет):

  • bcrypt.dll
  • ieshims.dll (в принципе работает и без нее на Win7)
  • mfc71.dll
  • msvcr71.dll
  • ncrypt.dll
  • wer.dll

Где их взять ответит гугль, скачиваем, распаковываем в C:\Windows\System32 (можно ребутнуться для профилактики).

Если требуется работа приложений через ODBC драйвер

Распаковываем instantclient-odbc-win32-10.2.0.4.zip в нужное место, в моем случае это C:\Program Files\Oracle\instantclient_10_2 и запускаем оттуда odbc_install.exe

После  всех этих операций у большинства все начинает работать, надеюсь и вам это поможет :)

Если требуется работа x32 приложений через ODBC в Windows x64

Вот тут начинается самая хитрость, тк в панели управления в источниках данных ODBC нет драйвера Oracle! Поэтому нужно запустить управление ODBC x32, который, на удивление, расположен в C:\Windows\SysWoW64 (см. KB 942976 от M$). Для этого нужно выполнить команду:

%systemdrive%\Windows\SysWoW64\Odbcad32.exe 

И в открывшемся окне будет доступна возможность создать DSN с драйвером Oracle.