Как установить oracle client 12 на windows 10

Обновлено: 05.07.2024

В связи с участившимися вопросами "как ставить 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$). Для этого нужно выполнить команду:

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

По Вашему запросу ничего не найдено.

Рекомендуем сделать следующее:

  • Проверьте правильность написания ключевых слов.
  • Используйте синонимы введенных Вами ключевых слов, например “приложение” вместо “программное обеспечение”.
  • Попробуйте воспользоваться одним из популярных поисковых запросов ниже.
  • Начните новый поиск.

Oracle Instant Client ODBC Installation Notes

Installing Oracle Instant Client Basic and Basic Lite

Instant Client ODBC requires the Oracle Instant Client Basic or Basic Light package (depending on your locale requirements) also be installed. Download the desired package from OTN for your operating system and follow the installation instructions on the download page. For example, unzip the package to C:\instantclient_19_3 on Windows, unzip to /opt/oracle/instantclient_19_3 on Linux or other platforms, or use yum to install the RPM packages on Linux.

Installing Oracle Instant Client ODBC

On Linux and UNIX

1. Download Install the Instant Client Basic or Basic Light package as described above.

2. Download the Instant Client ODBC package. Unzip it in the same directory as your Basic or Basic Light package. Or, if using the RPM package on Linux, install it with yum .

3. Install the unixODBC driver manager if it is not already available. Refer to the "Recommended unixODBC Driver Manager version" section in this document for more information.

4. Execute odbc_update_ini.sh from the Instant Client directory.

5. Set any Oracle Globalization variables required for your locale. See the Oracle Database Globalization Support Guide for more information. For example on Linux you could set export NLS_LANG=JAPANESE_JAPAN.JA16EUC to work in the JA16EUC character in Japanese.

Usage: odbc_update_ini.sh <ODBCDM_Home> [<Install_Location> <Driver_Name> <DSN> <ODBCINI>]

* - Optional parameters

On Windows

  1. Install the Instant Client Basic or Basic Light package, as described above.
  2. Download the Instant Client ODBC package. Unzip it in the same directory as your Basic or Basic Light package.
  3. Execute odbc_install.exe from the Instant Client directory. If Instant Client is 11g or lower, start the command prompt with the Administrator privilege. To install with Japanese language support, execute the command odbc_install.exe JA .

Environment setup for ODBC applications

Contents of the Oracle Instant Client ODBC Package

Description Linux and UNIX Windows
Oracle ODBC driver shared library libsqora.so.XX.Y. For example libsqora.so.19.1 sqora32.dll
Installation file odbc_update_ini.sh odbc_install.exe, odbc_uninstall.exe
Oracle ODBC driver configuration dialog window (GUI) Not available sqoras32.dll, sqresus.dll, sqresja.dll
Help System help/ help/

Patching Oracle Instant Client ODBC

Note: Backup the Oracle ODBC driver shared library and other files before patching them.

Alternatively the Oracle Instant Client ODBC driver can be patched by copying the files that are listed below from a patched ORACLE_HOME:

  • ODBC driver shared library file:
    For 19c: libsqora.so.19.1
    For 18c: libsqora.so.18.1
    For 12c: libsqora.so.12.1
    For 11g: libsqora.so.11.1
  • Required additional files when using Oracle Instant Client Basic:
    For 19c: libociei.so, libclntshcore.so.19.1, libclntsh.so.19.1, libnnz19.so, libons.so
    For 18c: libociei.so, libclntshcore.so.18.1, libclntsh.so.18.1, libnnz18.so, libons.so
    For 12c: libociei.so, libclntshcore.so.12.1, libclntsh.so.12.1, libnnz12.so, libons.so
    For 11g: libclntsh.so.11.1, libociei.so, libnnz11.so
  • Required additional files when using Oracle Instant Client Basic Light:
    For 19c: libclntsh.so.19.1, libclntshcore.so.19.1, libociicus.so, libnnz19.so, libons.so
    For 18c: libclntsh.so.18.1, libclntshcore.so.18.1, libociicus.so, libnnz18.so, libons.so
    For 12c: libclntsh.so.12.1, libclntshcore.so.12.1, libociicus.so, libnnz12.so, libons.so
    For 11g: libclntsh.so.11.1, libociicus.so, libnnz11.so

On Windows Patching the Instant Client ODBC driver on Windows can be done only by manually copying the ODBC driver shared library files and supporting library files from a patched ORACLE_HOME or from an unpacked Oracle Database Bundle patch. These should be copied into the Instant Client directory. Generating an Instant Client ODBC package is not available on Windows.

The files that must be copied to the Instant Client directory:

  • ODBC driver shared library files: sqora32.dll, sqoras32.dll, sqresus.dll, sqresja.dll
  • Required additional files when using Oracle Basic Instant Client:
    For 19c: oraociei19.dll, orannzsbb19.dll, oci.dll, oraons.dll, ociw32.dll, oraociei19.sym, orannzsbb19.sym, oci.sym, ociw32.sym
    For 18c: oraociei18.dll, orannzsbb18.dll, oci.dll, oraons.dll, ociw32.dll, oraociei18.sym, orannzsbb18.sym, oci.sym, ociw32.sym
    For 12c: oraociei12.dll, orannzsbb12.dll, oci.dll, oraons.dll, ociw32.dll, oraociei12.sym, orannzsbb12.sym, oci.sym, ociw32.sym
    For 11g: oraociei11.dll, orannzsbb11.dll, oci.dll, ociw32.dll, oraociei11.sym, orannzsbb11.sym, oci.sym, ociw32.sym
  • Required additional files when using Oracle Basic Light Instant Client:
    For 19c: oraociicus19.dll, orannzsbb19.dll, oci.dll, oraons.dll, ociw32.dll, oraociicus19.sym, orannzsbb19.sym, oci.sym, ociw32.sym
    For 18c: oraociicus18.dll, orannzsbb18.dll, oci.dll, oraons.dll, ociw32.dll, oraociicus18.sym, orannzsbb18.sym, oci.sym, ociw32.sym
    For 12c: oraociicus12.dll, orannzsbb12.dll, oci.dll, oraons.dll, ociw32.dll, oraociicus12.sym, orannzsbb12.sym, oci.sym, ociw32.sym
    For 11g: oraociicus11.dll, orannzsbb11.dll, oci.dll, ociw32.dll, oraociicus11.sym, orannzsbb11.sym, oci.sym, ociw32.sym

Note: While copying from the Oracle Database Bundle patch, some of the files above may be missing. This implies that those files are unchanged and do not need to be patched.

Версию Oracle Client можно выяснить, просмотрев вывод при вызове утилиты SQL*Plus, как показано в следующем примере:

Приведенный вывод команды SQL*Plus показывает, что в системе установлено программное обеспечение Oracle Client версии 11.1.0.6.0.

При установке программного обеспечения Oracle Client можно выбрать одну из четырех опций.

  • Administrator (Администратор). Позволяет приложениям подключаться к локальным или удаленным базам данных Oracle и управлять ими.
  • Runtime (Компоненты времени выполнения). Позволяет подключаться к локальным или удаленным базам данным Oracle.
  • Custom (Пользовательская установка). Позволяет выбирать отдельные компоненты из числа устанавливаемых при вариантах установки Administrator и Runtime.
  • Instant Client (Мгновенный клиент). Производится инсталляция только библиотек совместного использования, необходимых для OCI (Oracle Call Interface — Интерфейс вызова Oracle), OCCI (Oracle C++ Call Interface — Интерфейс вызова C++ Oracle) и приложениям Java Database Connectivity OCI (Java-OCI подключения к базе данных).

На заметку! Новая опция Instant Client описана в наших блогах в статье “Мгновенный клиент Oracle”.

Установка Oracle Client

Чтобы установить программное обеспечение Oracle Client, выполните следующие действия.

Совет. При наличии нескольких установок Oracle на ПК система может содержать также несколько файлов tnsnames.ora. Пользователь может оказаться не в состоянии подключиться к новой базе данных после добавления информации о конфигурации сети в файл tnsnames.ora, если используется не этот файл. Убедитесь, что в пути ПО Oracle Client указан нужный файл tnsnames.ora.

Использование переменной среды TWO_TASK

Использование имени Oracle Net можно обойти, устанавливая переменную среды TWO_TASK (в системе UNIX/Linux) или переменную среды LOCAL (в системе Windows).

Переменная TWO_TASK указывает строку подключения для подключения к удаленному компьютеру. Программа SQL*Plus проверит значение переменной среды TWO_TASK и автоматически добавит его в строку подключения, как показано в следующем примере:

Как только переменная среды TWO_TASK установлена, к базе данных mydb можно подключаться следующим образом:

Обратите внимание, что применять спецификацию sqlplus scott/tiger@mydb не пришлось, поскольку используется переменная TWO_TASK.

На сервере Windows следующие команды эквивалентны установке переменной среды TWO_TASK:

За время работы с Oracle Database и Microsoft SQL Server Integration Services я собрал 2 FAQ-а. Первый — по Oracle Client — я публикую здесь, а второй — по коннекторам SSIS к Oracle, следующим постом.

Что такое Oracle Client?

Это промежуточное ПО, предназначенное для доступа к Oracle Database. Некоторые приложения имеют встроенного клиента. Встраиваемый клиент, предназначенный для разработчиков, называется Instant Client.

Откуда скачать Oracle Client?

Если Вы возьмете клиента от более старшей версии это будет плюсом, поскольку не придется его обновлять на работающей системе, когда потребуется соединяться со следующей СУБД Oracle.

Не перепутайте Oracle Client и Oracle Instant Client, предназначенный для разработчиков. Так же, не качайте Data Access Components, поскольку DAC, помимо Oracle Client, содержит много средств, нужных только для разработки приложений.

Установка клиента Oracle 12c 32-bit не проходит после установки Oracle 12c 64-bit клиента (или наоборот)

Если Вы только что установили одного из клиентов Oracle 12c и не перезагружались, перезагрузитесь.

Программа установки Oracle Client, называемая Oracle Universal Installer, создает службу OracleRemExecService, которая согласно неофициальному описанию нужна только для OUI и должна исчезнуть после перезагрузки. В реальности она не исчезает, но и не запускается при старте ПК. Является ли правильным остановить службу, я не знаю, но это тоже помогает.

Как настроить подключение к СУБД Oracle в приложении, использующем Oracle Client?

Со стороны прикладного программного обеспечения, работающего через Oracle Client, для указания БД может быть использовано имя сервиса TNS или строка конфигурации, содержащая часть объявления имени сервиса TNS.

В первом случае в папке Oracle Client в "\network\admin\tnsnames.ora" укажите:

При этом, в приложениях в поле TNS Service Name указывается имя подключения.

Следует иметь ввиду, что в приложении, запускаемом в 32-х битной среде, используется Oracle Client 32-bit, а в 64-х битной среде используется Oracle Client 64-bit, поэтому может потребоваться сделать "tnsnames.ora" в обоих клиентах.

Что такое SERVICE_NAME и SID?

Подключение к базе данных по сети со стороны сервера обслуживает промежуточное ПО, называемое Listener.

SID это уникальный идентификатор базы данных Oracle на машине, а SERVICE_NAME, это идентификатор базы данных, заданный в Listener. Таким образом, одна и та же база данных, может быть доступна под разными SERVICE_NAME, но только под одним SID. Вас, поскольку Вы находитесь снаружи Listener-а, волнует SERVICE_NAME.

Как адресовать таблицы в Oracle?

По-умолчанию пользователь Oracle обращается к таблицам в своей схеме. Для того, что бы запрос обращался к одним и тем же таблицам из под любого пользователя, нужно указывать имя схемы перед точкой. Например, BM9.BM_CUSTOMER_CONTACT адресует таблицу BM_CUSTOMER_CONTACT в схеме BM9.

Что такое схема и база данных в Oracle?

База данных в СУБД Oracle = отдельный набор процессов СУБД с общей памятью.

Схема содержится внутри базы данных и является контейнером для таблиц. Кроме того, схема = пользователь.

Таблицы с одинаковыми именами могут существовать одновременно в разных схемах.

Почему не удается определить OCI environment (например, в Attunity)?

Приложение использующее Oracle Client должно каким-то образом его найти. Путь установки Oracle Client добавляется в %PATH% Oracle Installer-ом при установке. Но следует иметь ввиду, что переменные окружения устанавливаются процессу при запуске и, к примеру, Visual Studio (BIDS, Data Tools) запущенная до установки клиента, требует перезапуска, что бы начать использовать новый %PATH%.

Эта ошибка может быть по разному сформулирована в других приложениях.

Как настроить символьную кодировку Oracle Client?

Неверно настроенная кодировка может влиять как на получаемые данные, так и на выполнение запросов. Это может проявляться в том, что REPLACE(table_column, 'А', 'Б') в одном инструменте работает, а в другом нет, потому, что литералы ‘А’ и ‘Б’, поступающие в БД, воспринимаются иначе в одном из инструментов.

Для 32-х разрядного клиента в реестре в [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE] установите параметр "NLS_LANG"="RUSSIAN_CIS.CL8MSWIN1251" (типа REG_SZ).

Для 64-х разрядного клиента в реестре в [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE], аналогично, установите параметр "NLS_LANG"="RUSSIAN_CIS.CL8MSWIN1251" (типа REG_SZ).

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

Читайте также: