// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Соединение с базой данных Oracle из IDE NetBeans
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Соединение с базой данных Oracle из IDE NetBeans - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Соединение с базой данных Oracle из IDE NetBeans

IDE NetBeans включает встроенную поддержку для баз данных Oracle. Пользователь может без труда установить подключение к ней из среды IDE и начать работу в базе данных. В данном учебном курсе показано, как использовать локально установленный экземпляр базы данных Oracle 10_g_ Express Edition (Oracle Database XE), упрощенной базы данных, открытой для бесплатных развертывания, распространения и разработки для нее.

В этом документе описывается <<connect,настройка соединения для локальной установки>> базы данных Oracle XE из IDE NetBeans, использования встроенного редактора SQL IDE для <<createuser,обработки данных базы данных>>, а также <<oci8,включения расширения PHP OCI 8>> для написания кода PHP, выполняющего соединения с базой данных Oracle.

*Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.*

|===
|Программное обеспечение или материал |Требуемая версия 

|link:https://netbeans.org/downloads/index.html[+IDE NetBeans+] |7.2, 7.3, 7.4, 8.0, пакет Java EE 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Комплект для разработчика на языке Java (JDK)+] |Версия 7 или 8 

|link:http://www.oracle.com/technetwork/database/express-edition/overview/index.html[+База данных Oracle +] |10 _g_ Express Edition 

|link:http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html[+Драйвер JDBC Oracle+] |link:http://download.oracle.com/otn/utilities_drivers/jdbc/11202/ojdbc6.jar[+ojdbc6.jar+] 
|===


== Перед началом работы

Перед началом прохождения данного учебного курса обратите внимание на следующее:

* В данном учебном курсе описано подключение к экземпляру базы данных Oracle XE на локальном компьютере, но те же действия также могут быть применены при подключении к удаленному экземпляру. В случае подключения к локальном экземпляру необходимо link:http://www.oracle.com/technetwork/database/express-edition/overview/index.html[+загрузить+] и установить базу данных Oracle XE. Процесс установки прост и интуитивен, но если все же возникнут проблемы, ознакомьтесь с link:http://www.oracle.com/pls/xe102/homepage[+Руководством по установке базы данных Oracle XE+] для своей платформы.
* Существуют две категории драйверов JDBC Oracle: OCI и JDBC Thin.
* Драйвер Oracle JDBC Thin основан на Java и не зависит от платформы. Этот автономный драйвер не требует присутствия других библиотек Oracle и обеспечивает прямое подключение к базе данных Oracle. Он используется для подключения к базе данных Oracle в данном учебном курсе. Перед прохождением данного учебного курса необходимо link:http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html[+загрузить+] файл  ``ojdbc6.jar``  и сохранить его на своей системе.

NOTE:  Windows может изменить расширение загруженного файла с .jar на .zip. Но он при этом остается файлом .jar. Расширение можно просто заменить на .jar.

* Драйвер OCI Oracle использует встроенные клиентские библиотеки Oracle для связи с базами данных. Эти библиотеки входят в состав Oracle Instant Client. Хотя драйвер Thin являеся достаточным в большей части случаев, также рекомендуется использовать драйвер OCI путем выполнения шагов, описанных в разделе <<oci,Использование драйвера OCI JDBC с IDE NetBeans>>. 
Хорошим примером использования драйвера OCI является подключение к удаленной базе данных Oracle из приложения PHP с помощью библиотек Oracle Instant Client. Дополнительные сведения о включении расширения OCI8 для PHP см. в разделе этого учебного руководства <<oci8,OCI 8 и IDE NetBeans для PHP>>.
* Если вы не использовали базу данных Oracle XE ранее, прочитайте link:http://download.oracle.com/docs/cd/B25329_01/doc/admin.102/b25610/toc.htm[+Руководство по началу работы+] с базой данных Oracle XE.

*Предупреждение для пользователей GlassFish.* Домашняя страница базы данных Oracle XE, используемая для администрирования базы данных, использует по умолчанию порт 8080. Oracle GlassFish Application Server также использует по умолчанию 8080. Если запустить обе программы одновременно, база данных Oracle XE заблокирует доступ браузеров к GlassFish на localhost:8080. В этом случае все приложения, развернутые на GlassFish, будут возвращать ошибку 404. Проще всего отключать базу данных Oracle XE, если она не нужна во время работы с GlassFish. Если нужно использовать обе эти программы одновременно, измените порт по умолчанию, используемый базой данных Oracle XE. Это проще, чем изменить порт GlassFish по умолчанию. В Интернете можно найти много описаний процесса изменения порта базы данных Oracle XE по умолчанию, включая одно на link:https://forums.oracle.com/forums/thread.jspa?threadID=336855[+форумах Oracle+].


== Установка подключения к базе данных Oracle

В этом упражнении мы создадим и протестируем новое подключение к базе данных.

1. Запустите базу данных Oracle.
2. Откройте окно "Службы", выбрав меню "Окно" > "Службы" или Ctrl-5;⌘-5 в Mac. В окне 'Службы' щелкните правой кнопкой мыши узел 'Базы данных' и выберите 'Создать подключение'. 

image::images/new-connection.png[]


. В мастере создания подключений выберите Oracle Thin из раскрывающегося списка Driver ("Драйвер").
. Нажмите кнопку Add ("Добавить") и найдите ранее загруженный файл  ``ojdbc6.jar`` . Нажмите кнопку "Далее".
. На панели Customize Connection ("Настроить подключение") мастера введите следующие значения и нажмите кнопку Next ("Далее"). 

|===

|Имя |Значение 

|Имя драйвера |Oracle Thin (с идентификатором службы (SID)) 

|Адрес | ``localhost``  или 127.0.0.1. 
_Примечание._ В случае удаленного соединения, укажите IP-адрес или разрешаемое имя узла компьютера, на котором установлена ​​база данных. 

|Порт |1521 (по умолчанию) 

|Идентификатор службы (SID) | ``XE``  (SID по умолчанию для базы данных Oracle XE).
_Примечание._ В случае подключения к удаленной базе данных запросите SID у администратора базы данных. 

|Имя пользователя |

Введите имя пользователя. 
В целях данного учебного курса введите ``system``  (учетная запись по умолчанию администратора базы данных) и пароль, использованный во время установки базы данных.

 

|Пароль |Введите пароль для выбранного имени пользователя. 
|===


. Щелкните Test Connection ("Проверить подключение"), чтобы убедиться в наличии у среды IDE возможности подключиться к базе данных. Нажмите кнопку "Далее".

Если попытка будет успешна, в мастере отобразиться сообщение Connection succeeded ("Подключение успешно").

image::images/customize-conn.png[]


. Выберите  ``HR``  в раскрывающемся списке Select Schema ("Выбор схемы"). Нажмите кнопку "Завершить".

NOTE:  До получения доступа к NetBeans необходимо разблокировать схему HR. Разблокирование базы данных HR описано в link:http://download.oracle.com/docs/cd/B25329_01/doc/admin.102/b25610/toc.htm[+Руководстве по началу работы+] с базой данных Oracle XE.

Новое подключение появится в узле Databases ("Базы данных") окна Services ("Службы"). Его можно будет развернуть и приступить к просмотру структуры объекта базы данных. 
Измените отображаемое имя для узла подключения: выберите Properties ("Свойства") из всплывающего меню узла и нажмите кнопку многоточия, чтобы вывести свойство Display Name ("Отображаемое имя"). Введите OracleDB в качестве отображаемого имени и нажмите кнопку OK.

image::images/connection.png[]

NOTE:  Хотя приведенные выше шаги описывают случай подключения к экземпляру локальной базы данных, шаги для подключения к _удаленной_ базе данных такие же. Единственное отличие состоит в том, что вместо указания  ``localhost``  как имени узла следует ввести IP-адрес или имя узла удаленного компьютера, на котором установлена база данных Oracle.


== Управление данными в базе данных Oracle

Обычными способами взаимодействия с базами данных является выполнение команд SQL в редакторе SQL или использование интерфейсов управления базами данных. Например, у базы данных Oracle XE имеется интерфейс на основе браузера, посредством которого можно осуществлять администрирование базы данных, управлять объектами базы данных и манипулировать данными.

Хотя пользователи могут выполнить большую часть задач, связанных с базами данных с помощью интерфейса управления базами данных Oracle в этом учебном руководстве демонстрируется использование редактора SQL в IDE NetBeans для выполнения некоторых из этих задач. В приведенных ниже упражнениях показано, как создавать новых пользователей, быстро воссоздавать таблицы и копировать данные таблиц.


=== Создание пользователя

Давайте создадим новую учетную запись пользователя базы данных для управления таблицами и данными в базе данных. Чтобы создать нового пользователя, необходимо войти в систему, используя учетную запись администратора базы данных, в нашем случае учетную запись по умолчанию  ``system`` , созданную при установке базы данных.

1. В окне 'Службы' щелкните правой кнопкой мыши узел подключения OracleDB и выберите 'Выполнить команду'. При этом открывается редактор SQL IDE NetBeans, в котором можно указать команды, которые будут отправлены базе данных.

image::images/execute.png[]


. Чтобы создать нового пользователя, введите приведенную ниже команду в окне редактора SQL и нажмите кнопку Run SQL ("Выполнить SQL") на панели инструментов. 

image::images/create-user.png[]

[source,sql]
----
create user jim identified by mypassword default tablespace users temporary tablespace temp quota unlimited on users;
----

В результате выполнения данной команды будет создан новый пользователь  ``jim``  с паролем  ``mypassword`` . Табличным пространством по умолчанию является  ``users`` , а выделенное пространство не ограничено.


. Следующий этап – предоставить  ``jim``  права учетной записи пользователя на выполнение действий с базой данных. Необходимо разрешить пользователю подключаться к базе данных, создавать и изменять таблицы в табличном пространстве пользователя по умолчанию и выполнять доступ к таблице  ``Employees``  в примере базы данных  ``hr`` .

На практике администратор базы данных обычно создает особые роли и аккуратно настраивает полномочия для каждой из них. Но в целях нашего учебного курса мы можем использовать заранее определенную роль, такую как  ``CONNECT`` . Дополнительные сведения о ролях и полномочиях приведены в документе link:http://download.oracle.com/docs/cd/E11882_01/network.112/e16543/toc.htm[+Oracle Database Security Guide ("Руководство по безопасности базы данных Oracle")+].


[source,sql]
----
grant connect to jim;
grant create table to jim;
grant select on hr.departments to jim;
----


=== Табличные пространства в базах данных Oracle

Табличное пространство – это блок логической памяти во всех базах данных Oracle. На самом деле, все данные баз данных хранятся в табличных пространствах. Таблицы создаются внутри выделенных табличных пространств. Если табличное пространство по умолчанию не выделяется пользователю напрямую, то, по умолчанию, используется табличное пространство системы (этой ситуации лучше избегать).

Дополнительные сведения о концепции табличного пространства см. link:http://www.orafaq.com/wiki/Tablespace[+Часто задаваемые вопросы по Oracle: табличные простнранства+]



=== Создание таблицы

Существует несколько способов создания таблицы в базе данных с помощью IDE NetBeans. Например, можно запустить файл SQL (щелкните правой кнопкой мыши файл и выберите 'Запустить файл'), выполните команду SQL (щелкните правой кнопкой мыши узел подключения и выберите 'Выполнить команду') или используйте диалоговое окно 'Создать таблицу' (щелкните правой кнопкой мыши узел 'Таблицы' и выберите 'Создать таблицу'). В этом упражнении мы воссоздадим таблицу, используя структуру другой таблицы.

В данном примере нам нужно, чтобы пользователь  ``jim``  создал копию таблицы  ``Departments``  в своей схеме, воссоздав таблицу из базы данных  ``hr`` . Перед созданием таблицы будет необходимо отключиться от сервера и войти в систему как пользователь  ``jim`` .

1. Щелкните правой кнопкой мыши узел подключения  ``OracleDB``  в окне Services ("Службы") и выберите Disconnect ("Отключить").
2. Щелкните правой кнопкой мыши узел подключения  ``OracleDB`` , выберите Connect ("Подключить") и войдите как  ``jim`` .
3. Разверните узел Tables ("Таблицы") под схемой HR и убедитесь, что только таблица  ``Departments``  доступна пользователю  ``jim`` .

При создании пользователя  ``jim``  право выполнения выбора было ограничено таблицей  ``Departments`` .

image::images/hr-view.png[]


. Щелкните правой кнопкой мыши узел таблицы  ``Departments``  и выберите Grab Structure ("Копировать структуру"). Сохраните файл  ``.grab``  у себя на диске.
. Раверните схему  ``JIM`` , щелкните правой кнопкой мыши узел  ``Таблицы``  и выберите 'Повторно создать таблицу'. 
Укажите на созданный файл  ``.grab`` . 

image::images/recreate.png[]


. Проверьте сценарий SQL, который будет использован для создания данной таблицы. Нажмите кнопку "ОК". 

image::images/nametable.png[]
При нажатии кнопки "ОК" новая таблица  ``DEPARTMENTS``  будет создана и появится под узлом схемы  ``JIM`` . При щелчке правой кнопкой мыши узла таблицы и выборе 'Просмотреть данные' будет видно, что таблица пустая.

Если нужно скопировать данные из исходной таблицы  ``Departments``  в новую таблицу, данные можно ввести вручную в редактор таблиц, либо выполнить сценарий SQL для заполнения новой таблицы.

*Для ввода данных вручную выполните следующие действия.*

1. Щелкните правой кнопкой мыши таблицу  ``DEPARTMENTS``  в схеме  ``JIM``  и выберите View Data ("Просмотр данных").
2. Щелкните значок Insert Records ("Вставить записи") на панели инструментов View Data ("Просмотр данных"), чтобы открыть окно вставления записей. 

image::images/insert-rec.png[]


. Введите данные в поля для них. Нажмите кнопку "ОК".

Например, можно ввести следующие значения из исходной таблицы  ``DEPARTMENTS`` .

|===
|Столбец |Значение 

|DEPARTMENT_ID |10 

|DEPARTMENT_NAME |Администрирование 

|MANAGER_ID |200 

|LOCATION_ID |1700 
|===

*Для заполнения страницы с помощью сценария SQL выполните следующие действия.*

1. Щелкните правой кнопкой мыши таблицу  ``DEPARTMENTS``  в схеме  ``JIM``  и выберите Execute Command ("Исполнить команду").
2. Введите сценарий на вкладке команд SQL. Нажмите кнопку Run ("Выполнить") на панели инструментов.

Следующий сценарий заполнит первую строку новой таблицы данными из исходной таблицы.


[source,sql]
----
INSERT INTO JIM.DEPARTMENTS (DEPARTMENT_ID, DEPARTMENT_NAME, MANAGER_ID, LOCATION_ID) VALUES (10, 'Administration', 200, 1700);
----

Извлечь этот сценарий SQL для заполнения таблицы из исходной таблицы можно посредством следующих действий.

1. Щелкните правой кнопкой мыши таблицу  ``DEPARTMENTS``  в схеме  ``HR``  и выберите View Data ("Просмотр данных").
2. Выберите все строки в окне 'Просмотреть данные', затем щелкните правой кнопкой мыши в таблице и выберите 'Показать сценарий SQL' для INSERT во всплывающем меню, чтобы открыть диалоговое окно 'Показать SQL', содержащее сценарий.

После этого сценарий можно скопировать и модифицировать, насколько это необходимо, для вставки данных в новую таблицу.

См. <<tips,раздел советов>> для получения дополнительных сведений о работе с редактором SQL.


=== Работа с данными в таблице

Для работы с табличными данными можно использовать редактор SQL в IDE NetBeans. Выполняя запросы SQL, можно добавлять, изменять и удалять данные, находящиеся в структурах таблицы.

В первую очередь создайте вторую таблицу под названием Locations в схеме  ``jim``  (оставайтесь в системе как пользователь jim). На этот раз мы просто выполним готовый к использованию файл SQL в среде IDE:

1. Загрузите и сохраните файл link:https://netbeans.org/project_downloads/samples/Samples/Java/locations.sql[+locations.sql+] в каталог _USER_HOME_ на своем компьютере.
2. Откройте окно Favorites ("Избранное") среды IDE и найдите файл  ``locations.sql`` .

Чтобы открыть окно избранного, выберите Window ("Окно") > Favorites ("Избранное") в главном меню (нажмите Ctrl-3). Каталог _USER_HOME_ приводится в окне избранного по умолчанию.


. Щелкните файл  ``locations.sql``  правой кнопкой мыши и выберите Run File ("Запустить файл").

image::images/run-file.png[]

NOTE:  Если зарегистрировано более одного соединения с базой данных в IDE, в IDE может отобразиться запрос на выбор правильного подключения.


. В окне 'Службы' щелкните правой кнопкой мыши узел 'Таблицы' и выберите 'Обновить' во всплывающем меню.

Можно будет увидеть, что таблица  ``Locations``  с данными была добавлена к схеме  ``JIM`` .

image::images/second-table.png[]


. Щелкните правой кнопкой мыши узел таблицы Locations и выберите View Data ("Просмотр данных") для просмотра содержимого таблицы. Можно будет увидеть содержимое таблицы Locations.
В этом окне просмотра можно напрямую вставлять новые записи и изменять существующие данные. 

image::images/view-data1.png[]


. Далее мы выполним запрос для просмотра информации из двух таблиц Departments и Locations.

В этом случае мы используем простое "естественное слияние", поскольку столбец "location_id" обеих таблиц одинаков и содержит значения одного типа данных. Этот тип слияния выбирает только строки, имеющие одинаковые значения в соответствующем столбце location_id.

Откройте окно команд SQL (щелкните правой кнопкой мыши узел  ``Таблицы``  в схеме  ``JIM``  и выберите 'Выполнить команду'), введите следующий оператор SQL и щелкните значок 'Запустить SQL'.


[source,sql]
----
SELECT DEPARTMENT_NAME, MANAGER_ID, LOCATION_ID, STREET_ADDRESS, POSTAL_CODE, CITY, STATE_PROVINCE 
FROM departments NATURAL JOIN locations
ORDER by DEPARTMENT_NAME;
----

Данный запрос SQL возвращает строки из таблицы Departments, location_id которых равен значениям в соответствующем столбце таблицы Locations. Результаты упорядочены по именам в таблице Departments. Обратите внимание, что новые записи нельзя вставлять напрямую в результаты данного запроса, как это можно делать в представлении одной таблицы.

image::images/join.png[]

Запрос присоединения SQL как представление (щелкните правой кнопкой мыши узел 'Представление' и выберите 'Создать представление') и запустите его в удобное время. Но для этого пользователь базы данных должен иметь право на создание представлений, которого нет у созданного в нашем примере пользователя. Можно войти в систему, используя системную учетную запись, предоставить  ``jim``  право на создание представлений (с помощью следующего оператора SQL: "grant create view to jim;") и попробовать создать собственное представление.


=== Советы по работе в редакторе SQL IDE NetBeans

Если этот учебный курс последовательно изучался, то функции редактора SQL IDE NetBeans уже использовались. Здесь приведен список других функций редактор SQL IDE NetBeans, которые могут оказаться полезными для пользователей.

1. *Представление графического интерфейса таблиц баз данных*. Если щелкнуть правой кнопкой мыши узел таблицы в окне 'Службы' и выбрать 'Просмотреть данные', IDE отображает визуальное представление таблицы и ее данных (как показано на рисунке выше). Данные таблицы также можно добавлять, изменять и удалять прямо в этом представлении.
* Чтобы добавить запись, щелкните значок 'Вставить записи' image:images/row-add.png[] и вставьте новые данные в открывшееся окно 'Вставка записей'. Нажмите кнопку Show SQL ("Показать SQL"), чтобы просмотреть код SQL для данной операции. Таблица будет автоматически обновлена со включением новых записей.
* Чтобы изменить запись, дважды щелкните внутри любой ячейки в представлении графического интерфейса таблицы и введите новое значение. Пока изменение не зафиксировано, измененный текст выделяется зеленым цветом. Для фиксации изменений щелкните значок 'Фиксировать изменения' image:images/row-commit.png[]. Для отмены изменений щелкните значок 'Отменить правки' image:images/row-commit.png[] icon.
* Чтобы удалить строку, выделите ее и щелкните значок 'Удалить выбранные записи' image:images/row-commit.png[].

[start=2]
. *Сохранение предыдущих вкладок* Щелкните значок 'Сохранить предыдущие вкладки' image:images/keepoldresulttabs.png[] на панели инструментов редактора SQL, чтобы держать окна с результатами предыдущих запросов открытыми. Это может быть полезно, если необходимо сравнить результаты нескольких запросов.

[start=3]
. *Журнал SQL* (Ctrl-Alt-Shift-H). С помощью значка 'Хронология SQL' image:images/sql-history.png[] на панели инструментов редактора SQL можно просмотреть все операторы SQL, запущенные для каждого из соединений с базой данных. Выберите подключение из раскрывающегося списка, найдите необходимый оператор SQL и щелкните Insert ("Вставить") для помещения оператора в окно команд SQL.

[start=4]
. *Список подключений*. При наличии нескольких подключений к базам данных и необходимости быстро переключаться между ними в редакторе SQL используйте раскрывающийся список Connections ("Подключения").

[start=5]
. *Выполнение операторов SQL*. Для выполнения всего оператора, в настоящее время находящегося в окне 'Команды SQL' щелкните значок 'Выполнить SQL' image:images/runsql.png[]. Если необходимо запустить только часть SQL, выберите ее в окне 'Команды SQL', щелкните правой кнопкой мыши выбранное и выберите 'Выполнить выбранное'. В данном случае будет выполнена только выбранная часть.



== OCI 8 и IDE NetBeans для PHP

Можно использовать расширение OCI 8 PHP и IDE NetBeans для PHP для записи кода PHP, который используется для взаимодействия с базой данных Oracle. Использование IDE NetBeans для PHP и базы данных Oracle

1. Настройте среду PHP, как описано в разделе "Настройка среды для разработки на языке PHP" link:../../trails/php.html[+Учебной карты по PHP+]. Обратите внимание, что IDE NetBeans поддерживает только PHP 5.2 или 5.3.
2. Откройте свой файл  ``php.ini``  в редакторе. Убедитесь, что свойство  ``extension_dir``  настроено на каталог расширений PHP. Обычно этим каталогом является  ``PHP_HOME/ext`` . Например, если PHP 5.2.9 установлен в корневой каталог  ``C:`` , настройкой  ``extension_dir``  должно быть  ``extension_dir="C:\php-5.2.9\ext"`` .
3. Найдите строку  ``extension=php_oci8_11g.dll``  (для Oracle 11g) или  ``extension=php_oci8.dll``  (для Oracle 10.2 или XE) и снимите с нее комментарий. В каждый конкретный момент времени может быть включено лишь одно из этих расширений.

*Важно!* Если в  ``php.ini``  нет такой строки, поищите в папке расширений файл расширения OCI 8. В случае отсутствия файла расширения OCI 8 в папке расширений информацию о загрузке и установке OCI 8 можно найти в документе link:http://www.oracle.com/technetwork/articles/technote-php-instant-084410.html[+Installing PHP and the Oracle Instant Client for Linux and Windows ("Установка PHP и Oracle Instant Client для Linux и Windows")+].


. Перезапустите Apache. (Пользователям Windows следует перезагрузить компьютер).
. Выполните  ``phpinfo()`` . Если OCI 8 успешно включен, раздел OCI 8 появится в выводе  ``phpinfo()`` .

Дополнительные сведения о включении OCI 8 и, в особенности, об использовании OCI 8 с удаленным сервером Oracle DB приведены в документе link:http://www.oracle.com/technetwork/articles/technote-php-instant-084410.html[+Installing PHP and the Oracle Instant Client for Linux and Windows ("Установка PHP и Oracle Instant Client для Linux и Windows")+].

Если включена поддержка OCI 8, IDE NetBeans для PHP получает доступ к этому расширению для завершения кода и отладки.

image::images/oci-cc.png[]


== Использование драйвера JDBC OCI с IDE NetBeans

Пакеты драйверов OCI доступны в том же файле JAR, что и драйвер JDBC Thin ( ``ojdbc6.jar`` ). Выбор драйвера, который следует использовать, зависит от интерфейса:  ``oracle.jdbc.OracleDriver``  для драйвера Thin и  ``oracle.jdbc.driver.OracleDriver``  для драйвера OCI. Чтобы использовать драйвер OCI, необходимо также установить Oracle Database Instant Client, поскольку он содержит все библиотеки, необходимые драйверу OCI для связи с базой данных.

*Соединение с базой данных Oracle из IDE NetBeans с помощью драйвера OCI Oracle:*

1. link:http://www.oracle.com/technetwork/database/features/instant-client/index-100365.html[+Загрузите+] "Базовый" пакет Oracle Database Instant Client для своей платформы. Выполните инструкции по установке на link:http://www.oracle.com/technetwork/database/features/instant-client/index-100365.html[+данной странице+].
2. В окне 'Службы' в IDE щелкните правой кнопкой мыши узел 'Базы данных' и выберите 'Создать подключение'.
3. В действии Locate Driver ("Обнаружение драйвера") выберите OCI Oracle, нажмите кнопку Add ("Добавить") и укажите файл  ``ojdbc6.jar`` .
4. В диалоговом окне Customize Connection ("Настроить подключение") предоставьте сведения о подключении: IP-адрес, порт, SID, имя пользователя и пароль.
Обратите внимание, что URL-адреса JDBC для драйверов OCI и Thin различаются. 

image::images/oci-connection.png[]


== Устранение проблем

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

* Встречена ошибка следующего типа:

[source,bash]
----
Shutting down v3 due to startup exception : No free port within range:
>> 8080=com.sun.enterprise.v3.services.impl.monitor.MonitorableSelectorHandler@7dedad
----
Это вызвано тем, что как сервер приложений GlassFish, так и Oracle Database используют порт 8080. Если нужно использовать оба приложения одновременно, следует изменить этот порт по умолчанию для одного из них. Чтобы сбросить порт базы данных Oracle по умолчанию, можно использовать следующую команду:

[source,bash]
----
CONNECT SYSTEM/passwordEXEC DBMS_XDB.SETHTTPPORT(<new port number>);
----
* Получена следующая ошибка:

[source,bash]
----
Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor.
----
Это происходит, когда идентификатор службы (SID) экземпляра базы данных, переданный дескриптором подключения, неизвестен прослушивающему процессу. Такое исключение может быть вызвано рядом причин. Например, база данных Oracle может не работать (простейший случай). Либо SID может быть неверен или неизвестен прослушивателю. Если использовать SID по умолчанию (например, SID по умолчанию для базы данных Oracle Express Edition – XE), эта проблема маловероятна. SID входит в части CONNECT DATA файла  ``tnsnames.ora``  (на компьютере Windows этот файл расположен по адресу  ``%ORACLE_HOME%\network\admin\tnsnames.ora`` ).
* Получена следующая ошибка: 

[source,bash]
----
ORA-12705: Cannot access NLS data files or invalid environment specified.
----

Как правило, это означает, что переменная среды NLS_LANG содержит недопустимое значение языка, территории или набора символов. Если это так, недопустимые настройки NLS_LANG следует отключить на уровне операционной системы. В случае Windows, переименуйте подключ NLS_LANG в реестре Windows, расположенный в \HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE. В случае Linux/Unix, выполните команду "unset NLS_LANG".

link:/about/contact_form.html?to=3&subject=Feedback:%20Connecting%20to%20Oracle%20Database%20from%20NetBeans%20IDE[+Мы ждем ваших отзывов+]



== Дополнительные сведения

Более подробные сведения об администрировании и использовании базы данных Oracle доступны в соответствующей документации по Oracle. Далее приведен краткий список наиболее часто используемой документации.

* link:http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/toc.htm[+Oracle Database SQL Reference ("Справка по SQL для Oracle Database")+]. Полное описание инструкций SQL, используемых для обработки информации в Oracle Database.
* link:http://download.oracle.com/docs/cd/E11882_01/network.112/e16543/toc.htm[+Oracle Database Security Guide ("Руководство по безопасности Oracle Database")+]. показаны и объяснены основные концепции, используемые для управления базой данных Oracle Database.
* Руководство по link:http://st-curriculum.oracle.com/tutorial/DBXETutorial/index.htm[+Oracle Database 10_g_ Express Edition+]. Быстрое, но подробное введение в работу с базой данных Oracle XE.
* link:http://www.oracle.com/technetwork/articles/technote-php-instant-084410.html[+Installing PHP and the Oracle Instant Client for Linux and Windows ("Установка PHP и Oracle Instant Client для Linux и Windows")+]. Статья с простыми практическими указаниями по установке PHP и Oracle Instant Client.

Дополнительные сведения о работе с другими базами данных в IDE NetBeans см.

* link:java-db.html[+Работа с базой данных Java DB (Derby)+]
* link:mysql.html[+Подключение к базе данных MySQL+]
* link:../web/mysql-webapp.html[+Создание простого веб-приложения, использующего базу данных MySQL+]
