Oracle Client - это программа, которая позволяет работать с базой данных Oracle, установленной на удаленном компьютере или сервере. Как и указано в названии, приложение представляет собой клиентскую часть, которая предназначена для выполнения авторизации, проверки прав доступа и составления запросов. То есть благодаря ей вы можете "общаться" с БД, используя для этого хоть и несколько архаичный, но все же удобный интерфейс.
Несмотря на то, что на момент написания данного обзора самой свежей является версия 12.0, наиболее "популярна" версия 11g. Именно ее чаще всего используют на предприятиях. Клиент доступен в вариантах для 32 битных и 64 битных операционных систем. Важный момент заключается в том, что версия x32 дает возможность работать Toad, SQL Developer и другими визуальными инструментами. В версии x64 такая возможность, к сожалению, отсутствуют.
В процессе установки ПО пользователю будет предоставлена возможность выбрать один из трех вариантов: Instant Client, Administrator, Runtime и Custom. Первый вариант предполагает установку исключительно разделенных библиотек. При выборе Administrator в дополнительные к библиотекам будет инсталлирована также консоль администратора (Oracle Manager Standalone Console). Runtime устанавливает большой пакет дополнительных инструментов, упрощающих взаимодействие с БД. Ну и вариант Custom, как несложно догадаться, будет полезен тем, кто желает самостоятельно выбрать компоненты для установки.
После выбора режима установщик выполнит все необходимые операции самостоятельно. Oracle Client не требует дополнительных драйверов и самостоятельно прописывает в меню автозагрузки. Скачать клиент можно совершенно бесплатно.
Понадобилось тут прицепиться из-под Windows 2003 к базе на Oracle 11g, если не ошибаюсь. Гугль вывел на страницу загрузки разных вариантов Oracle Instant Client .
Под линуксом всё оказалось просто: скачал нужный архив, распаковал из него папку instantclient_12_2, в строгом соответствии с инструкциями сделал пару линков на нужные библиотеки, прописал в /etc/ld.so.conf полный путь этого самого instantclient_12_2 и вызвал ldconfig. Всё. SQL*Plus сразу начал цепляться куда надо, и осталась одна проблема: Python 2.7 через cx_Oracle не сразу понял русские буквы, и потребовалось добавить в начало скрипта конструкцию:
import os
os.environ["NLS_LANG"] = "American_America.AL32UTF8"
А для SQL*Plus не потребовалось и этого.
Иное дело Windows 2003. Под ним я тоже распаковал instantclient_12_2, в эту же папку сгрузил файлы из архивов для ODBC и SQL*Plus, добавил её полный путь в системную переменную окружения PATH и попытался создать системный DSN. Безуспешно. На экран вывалились одна за одной ошибки "Не удается загрузить программы установки для драйвера ODBC Oracle in instantclient_12_2 из-за системной ошибки с кодом 127" и "Не удается загрузить программу установки или библиотеку транслятора" , и начался квест, закончившийся полным провалом. Ставлю Microsoft Visual Studio 2013 Redistributable - не помогает. Нахожу замечательную утилиту Dependency Walker 2.2 , которая, по аналогии с линуксовой ldd показывает зависимости библиотек, натравливаю её на sqora32.dll и sqoras32.dll, выясняется, что этим библиотекам для счастья нужны mfc110.dll и msvcr110.dll, нахожу их в установленных каких-то левых программах, копирую в instantclient_12_2 - всё без толку. Мало того, даже sqlplus.exe запускаться не желает. Может, в оракле перепутали 32-х и 64-х битную версии?
Разбираться не стал. Снёс Instant Client 12.2, поставил Instant Client 11.2. Тому тоже не хватает библиотек, на этот раз mfc80.dll и msvcr80.dll. Их найти легче, у меня они валялись в установленном клиенте SQL Server 2005. Подпихнул их в папку instantclient_11_2, окно настройки свойств подключения появилось.
Но на этом приключения не закончились. Как известно, описания оракловских подключений хранятся в файле tnsnames.ora, путь к папке которого по идее должен быть указан в переменной окружения TNS_ADMIN. Описываю своё подключение, выбираю его в окне настройки свойств "Oracle ODBC Driver Configuration" в поле TNS Sеrvice Name, пытаюсь сделать проверку подключения - получаю ошибку "ORA-12154 TNS:could not resolve the connect identifier specified" . Пришлось схитрить: в поле TNS Sеrvice Name прописать подключение в формате host:port/service_name.
Ладно, так или иначе, подключился. Опять возникла проблема с русскими буквами. Причем на ровном месте. В SQL*Plus выдаётся всё хорошо, запрос
select * from v$nls_parameters where parameter like "%CHARACTERSET%";
показывает обнадёживающее "CL8MSWIN1251", то есть, никакая перекодировка не нужна, но простейший ASP-скрипт в кодировке cp1251:
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=MSDASQL.1;Password=***;Persist Security Info=True;User ID=huh-muh;Data Source=MYORA"
Set RS = Server.CreateObject("ADODB.Recordset")
strSQL = "select "привет" from dual"
RS.Open strSQL, Conn
RS.MoveFirst
Response.Write RS.Fields(0)
RS.Close
Set RS = Nothing
Conn.Close
Set Conn = Nothing
вместо обнадёживающего "привет" рисует на странице удручающие знаки вопроса: "??????". Оказывается, надо прописать параметр NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251, но где это сделать, совершенно непонятно. В конце концов, пристроил этот параметр в реестр:
"NLS_LANG"="RUSSIAN_CIS.CL8MSWIN1251"
Правда, после этого неожиданно русифицировались SQL*Plus и сообщения оракла об ошибках, но и чёрт с ними. Главное, ASP-скрипты перестали глючить.
Чтобы получить доступ к базе данных Oracle с ПК, вначале на нем необходимо инсталлировать программное обеспечение Oracle Client . Программное обеспечение Oracle Client поставляется вместе с программным обеспечением Oracle Server. Кроме того, его можно загрузить также из сайта OTN (http://technet.oracle.com ). Программное обеспечение Oracle Client доступно для загрузки отдельно. Хотя версии Oracle Server и Oracle Client не обязательно должны совпадать, в Oracle рекомендуют применять соответствующие версии ПО, чтобы можно было полностью воспользоваться преимуществами новых функциональных возможностей.
Версию Oracle Client можно выяснить, просмотрев вывод при вызове утилиты SQL*Plus , как показано в следующем примере:
$ sqlplus C:\>sqlplus SQL*Plus: Release 11.1.0.6.0 - Production on Thu Mar 20 09:27:14 2008 Copyright (c) 1982, 2007, Oracle. All rights reserved. Enter user-name:
Приведенный вывод команды SQL*Plus показывает, что в системе установлено программное обеспечение Oracle Client версии 11.1.0.6.0.
При установке программного обеспечения Oracle Client можно выбрать одну из четырех опций.
На заметку! Новая опция Instant Client описана в наших блогах в статье “Мгновенный клиент Oracle”.
Чтобы установить программное обеспечение Oracle Client, выполните следующие действия.
Совет. При наличии нескольких установок Oracle на ПК система может содержать также несколько файлов tnsnames.ora . Пользователь может оказаться не в состоянии подключиться к новой базе данных после добавления информации о конфигурации сети в файл tnsnames.ora , если используется не этот файл. Убедитесь, что в пути ПО Oracle Client указан нужный файл tnsnames.ora.
Чтобы получить доступ к базе данных Oracle с ПК, вначале на нем необходимо инсталлировать программное обеспечение Oracle Client . Программное обеспечение Oracle Client поставляется вместе с программным обеспечением Oracle Server. Кроме того, его можно загрузить также из сайта OTN (http://technet.oracle.com ). Программное обеспечение Oracle Client доступно для загрузки отдельно. Хотя версии Oracle Server и Oracle Client не обязательно должны совпадать, в Oracle рекомендуют применять соответствующие версии ПО, чтобы можно было полностью воспользоваться преимуществами новых функциональных возможностей.
Версию Oracle Client можно выяснить, просмотрев вывод при вызове утилиты SQL*Plus , как показано в следующем примере:
$ sqlplus C:\>sqlplus SQL*Plus: Release 11.1.0.6.0 - Production on Thu Mar 20 09:27:14 2008 Copyright (c) 1982, 2007, Oracle. All rights reserved. Enter user-name:
Приведенный вывод команды SQL*Plus показывает, что в системе установлено программное обеспечение Oracle Client версии 11.1.0.6.0.
При установке программного обеспечения Oracle Client можно выбрать одну из четырех опций.
На заметку! Новая опция Instant Client описана в наших блогах в статье “Мгновенный клиент Oracle”.
Чтобы установить программное обеспечение Oracle Client, выполните следующие действия.
Совет. При наличии нескольких установок Oracle на ПК система может содержать также несколько файлов tnsnames.ora . Пользователь может оказаться не в состоянии подключиться к новой базе данных после добавления информации о конфигурации сети в файл tnsnames.ora , если используется не этот файл. Убедитесь, что в пути ПО Oracle Client указан нужный файл tnsnames.ora.