C подключение к бд oracle

Обновлено: 06.07.2024

В посте рассматривается пошаговое описание подключения к Oracle Autonomous Database c помощью локально установленного Oracle SQL Developer.

Инструмент Oracle SQL Developer позволяет подключиться к Autonomous Database (автономной базе данных) двумя способами:

  1. С помощью установленного на локальный компьютер Oracle SQL Developer.
  2. С помощью Oracle SQL Developer Web, которая установлена в Oracle Cloud. Oracle SQL Developer Web это web-версия Oracle SQL Developer, позволяющая выполнять запросы и скрипты, создавать объекты базы данных, загружать данные, строить модели данных, и наблюдать за производительностью базы данных. Начиная с версии 20.2, SQL Developer Web также называется «Database Actions». Данный способ подключения описан в этом посте.

В данном посте рассматривается пошаговое описание подключения к Oracle Autonomous Database c помощью локально установленного Oracle SQL Developer версии 19.2.1 .

Настройки на стороне Oracle Autonomous Database

Необходимо подключиться к Oracle Cloud под своей учетной записью. Затем, нажать на значок меню в левом верхнем углу (1 шаг) и выбрать «Autonomous Transaction Processing» (2 шаг):


Откроется список созданных Oracle Autonomous Database (далее Autonomous Database или автономная база данных). В данном примере уже есть созданная автономная база данных с отображаемым именем – My first Autonomous Database. Необходимо нажать на нее для настройки подключения.


Откроется страница сведений выбранной автономной базы данных. Для подключения к базе данных требуются учетные данные клиента и параметры подключения. Эти данные содержатся в электронном бумажнике (Wallet). Для скачивания электронного бумажника надо нажать на «Подключение к БД».


Откроется страница для скачивания электронного бумажника:



После скачивания файла бумажника, завершаются подготовительные работы на стороне Autonomous Database. Далее запускается и настраивается программное обеспечение SQL Developer, установленное на локальном компьютере.

Настройки SQL Developer

Необходимо запустить Oracle SQL Developer и нажать на знак зеленного плюса в левом верхнем углу.


Откроется окно для задания настроек подключения к новой базе данных. В данном примере подключение осуществляется к Oracle Autonomous Database и параметры подключения указаны в файле tnsnames.ora электронного бумажника (архивного файла). Остальные параметры и файл бумажника задаются следующим образом:

Name: OAD_dushanbe
Сокращено от Orace_Autonomous_Database_dushanbe. Указывается имя соединения, которое позволяет однозначно идентифицировать базу данных при подключении.

Username: admin
Password: пароль, который был задан во время инициализации (создания) автономной базы данных.

Connection Type: Cloud Wallet Указывает, что для безопасного подключения будет использован электронный бумажник облачного сервиса.


После выбора Cloud Wallet для раздела Connection Type, появляются следующие вкладки: Details, Advanced, Proxy. В параметре Configuration File вкладки Details необходимо указать скачанный электронный бумажник (см. раздел Настройки на стороне Autonomous Database). Значение для параметра Service оставить по умолчание high (dushanbe_high, то есть название базы и уровень high). Надо нажать на Connect для подключения к базе данных.

После нажатия Connect система затребует подтвердить еще раз пароль для пользователя базы данных admin. После успешного подключения к базе данных можно выполнить запрос в режиме реального времени к Autonomous Database с помощью SQL Developer. Например, выполняется SQL запрос для проверки версии и статуса автономной базы данных.


В разделе Connection можно раскрыть иерархию дерева автономной базы данных OAD_dushanbe. Это позволит просматривать список, наименование и содержание объектов Autonomous Database.


В завершении приводится пример создания объекта в автономной базе данных – создание простой таблицы с именем test. Данный пример показывает, что подключение к Oracle Autonomous Database прошло успешно и можно начать работать с базой данных.

image

Оговорюсь заранее, я не гуру Oracle; а так же не гуру красивого использования паттернов, но я стараюсь и знаю где лежит пирожок подхожу к вопросу философски, знаю что есть, знаю что я хочу, но использую в необходимом мне ключе.

Но оставим философствования. Займёмся поставленной задачей.
Перво-наперво необходимо подготовить «среду»:
1. Поставить клиент Oracle, без которого взаимодействие с БД не осуществить.
2. Настроить TNS под свои нужды.
3. Создать проект в Visual Studio.
4. Добавить reference на сборку System.Data.OracleClient.dll, посредством которой и будем «манипулировать» БД.

Подготовим почву, пожалуй сделаем БД военкомата. В простейшем случае, для этого хватит одной таблицы:

create table CONSCRIPT_INFO (
ID NUMBER not null ,
FIRST_NAME VARCHAR2(128),
LAST_NAME VARCHAR2(128),
AGES NUMBER,
GROWTH FLOAT ,
BIOGRAPHY CLOB ,
constraint PK_CONSCRIPT_INFO primary key (ID)
);

Идентификатор, Имя, Фамилия, Возраст, Рост, Биография. Вес нас не интересует.

Определим процедуры для добавления, на мой взгляд самое интересное, далее я объясню почему:

PROCEDURE ADD_CONSCRIPT
(FirstNameIn IN VARCHAR2, LastNameIn IN VARCHAR2,
AgesIn IN NUMBER, GrowthIn IN FLOAT , BiographyIn IN CLOB )
IS
BEGIN
INSERT INTO CONSCRIPT_INFO
(
ID,
FIRST_NAME,
LAST_NAME,
AGES,
GROWTH,
BIOGRAPHY
)
VALUES
(
CONSCRIPT_INFO_SEQ.NEXTVAL,
FirstNameIn,
LastNameIn,
AgesIn,
GrowthIn,
BiographyIn
);
END ;

PROCEDURE DELETE_CONSCRIPT
(ConscriptIDIn IN NUMBER)
IS
BEGIN

DELETE
FROM CONSCRIPT_INFO
WHERE >
END ;

PROCEDURE GET_CONSCRIPTS
(ConscriptsOut OUT sys_refcursor)
IS
BEGIN

OPEN ConscriptsOut FOR
SELECT *
FROM CONSCRIPT_INFO;

При работе с Oracle есть один неприятный момент, если явно не закрывать соединение, то количество курсоров будет после SELECT`a будет рости в геометрической прогрессии. Данная проблема решается «в лоб»:

Создание и открытие соединения
using (OracleConnection connection = new OracleConnection())
.
>

таким образом, за вас всю черновую работу сделает IDisposable.
Если обратить внимание на конструктор OracleConnection, то увидите что есть 2 варианта, «пустой» и с использованием строки, описывающей соединение с БД.
Строка имеет примерно такой вид:
Data Source=out_database_name;Password=our_password;User > Я думаю в объяснениях, что здесь что, данная строчка не нуждается.

Следующим шагом стоит открыть соединение:

Создание команды

Теперь мы готовы исполнять команду. После использования команды её тоже необходимо «освободить», не будем отходить от принципов и воспользуемся всё той же замечательной конструкцией using:

using (OracleConnection connection = new OracleConnection())
using (OracleCommand command = new OracleCommand())
command.Connection = connection;
command.CommandType = System.Data.CommandType.StoredProcedure;
command.CommandText = "GET_CONSCRIPTS" ;
>
>

Давайте разберёмся что делает данный «кусок» кода: вначале создаётся команда, ей присваивается соединение, в рамках которого будет работать наша команда. Затем указывается тип команды, всего выделяется 3 типа:
1. StoredProcedure — Имя хранимой процедуры.
2. TableDirect — Имя таблицы.
3. Text — Текстовая команда SQL. (По умолчанию).

Следующий параметр — текст, непосредственно имя хранимой процедуры или команда. В нашем случае будет использована хранимая процедура с именем «GET_CONSCRIPTS»

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

Оговорюсь сразу, использовать параметры можно и с CommandType.Text, ниже я покажу как это делается.

Пока же вернёмся с нашим параметрам:

OracleParameter ConscriptsOut = new OracleParameter()
ParameterName = "ConscriptsOut" ,
Direction = System.Data.ParameterDirection.Output,
OracleType = OracleType.Cursor
>;

Выполнение команды

команда выполнена… теперь можно «выгребсти» данные например так:

DataTable table = new DataTable();
table.Load(command.Parameters[ "ConscriptsOut" ].Value as OracleDataReader);

Возвращаемый параметр, представляет собой курсор, который можно прочитать, как OracleDataReader. Как разбирать параметр оставим в качестве «домашнего задания» ;).

На посошок

В заключении, я хочу рассказать про то как передать параметр в текст, а точнее я покажу:

using (OracleConnection connection = new OracleConnection())
using (OracleCommand command = new OracleCommand())
command.Connection = connection;
command.CommandType = System.Data.CommandType.Text;
command.CommandText = @"SELECT *
FROM CONSCRIPT_INFO
WHERE AGES < :max_ages;" ;

OracleParameter maxAges = new OracleParameter()
ParameterName = "max_ages" ,
Direction = ParameterDirection.Input,
OracleType = OracleType.Number,
Value = 27
>;

OracleDataReader reader = command.ExecuteReader();

Как видите вся хитрость заключается в использовании знака — :.

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

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

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

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

7.2, 7.3, 7.4, 8.0, пакет Java EE

10 g Express Edition

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

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

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

Существуют две категории драйверов JDBC Oracle: OCI и JDBC Thin.

Драйвер Oracle JDBC Thin основан на Java и не зависит от платформы. Этот автономный драйвер не требует присутствия других библиотек Oracle и обеспечивает прямое подключение к базе данных Oracle. Он используется для подключения к базе данных Oracle в данном учебном курсе. Перед прохождением данного учебного курса необходимо загрузить файл ojdbc6.jar и сохранить его на своей системе.

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

Драйвер OCI Oracle использует встроенные клиентские библиотеки Oracle для связи с базами данных. Эти библиотеки входят в состав Oracle Instant Client. Хотя драйвер Thin являеся достаточным в большей части случаев, также рекомендуется использовать драйвер OCI путем выполнения шагов, описанных в разделе Использование драйвера OCI JDBC с IDE NetBeans. Хорошим примером использования драйвера OCI является подключение к удаленной базе данных Oracle из приложения PHP с помощью библиотек Oracle Instant Client. Дополнительные сведения о включении расширения OCI8 для PHP см. в разделе этого учебного руководства OCI 8 и IDE NetBeans для PHP.

Если вы не использовали базу данных Oracle XE ранее, прочитайте Руководство по началу работы с базой данных 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 по умолчанию, включая одно на форумах Oracle.

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

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

Запустите базу данных Oracle.

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

new connection

В мастере создания подключений выберите Oracle Thin из раскрывающегося списка Driver ("Драйвер").

На панели Customize Connection ("Настроить подключение") мастера введите следующие значения и нажмите кнопку Next ("Далее").

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

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

1521 (по умолчанию)

Идентификатор службы (SID)

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

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

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

customize conn

До получения доступа к NetBeans необходимо разблокировать схему HR. Разблокирование базы данных HR описано в Руководстве по началу работы с базой данных Oracle XE.

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

connection

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

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

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

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

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

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

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

execute

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

create user

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

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

На практике администратор базы данных обычно создает особые роли и аккуратно настраивает полномочия для каждой из них. Но в целях нашего учебного курса мы можем использовать заранее определенную роль, такую как CONNECT . Дополнительные сведения о ролях и полномочиях приведены в документе Oracle Database Security Guide ("Руководство по безопасности базы данных Oracle").

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

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

Дополнительные сведения о концепции табличного пространства см. Часто задаваемые вопросы по Oracle: табличные простнранства

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

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

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

Щелкните правой кнопкой мыши узел подключения OracleDB в окне Services ("Службы") и выберите Disconnect ("Отключить").

Щелкните правой кнопкой мыши узел подключения OracleDB , выберите Connect ("Подключить") и войдите как jim .

Разверните узел Tables ("Таблицы") под схемой HR и убедитесь, что только таблица Departments доступна пользователю jim .

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

hr view

Щелкните правой кнопкой мыши узел таблицы Departments и выберите Grab Structure ("Копировать структуру"). Сохраните файл .grab у себя на диске.

Раверните схему JIM , щелкните правой кнопкой мыши узел Таблицы и выберите 'Повторно создать таблицу'. Укажите на созданный файл .grab .

recreate

nametable

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

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

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

Щелкните правой кнопкой мыши таблицу DEPARTMENTS в схеме JIM и выберите View Data ("Просмотр данных").

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

insert rec

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

Установка Oracle SQL Developer на Windows 10 и настройка подключения к базе данных

Ранее, в материале «Установка Oracle Database 18c Express Edition (XE) на Windows 10», мы подробно рассмотрели процесс установки системы управления базами данных Oracle Database в бесплатной редакции, сегодня, как было уже отмечено, мы рассмотрим процесс установки бесплатного инструмента с графическим интерфейсом, с помощью которого мы можем подключаться к базе данных Oracle, писать и выполнять различные SQL запросы и инструкции, речь идет о стандартном инструменте – Oracle SQL Developer.

Oracle SQL Developer — это бесплатная графическая среда для работы с базами данных Oracle Database, разработанная компанией Oracle. SQL Developer предназначен для разработки баз данных, бизнес-логики в базах данных, а также для написания и выполнения инструкций на языках SQL и PL/SQL.

Установка Oracle SQL Developer на Windows 10

Сейчас мы рассмотрим те шаги, которые необходимо выполнить, чтобы начать использовать Oracle SQL Developer на Windows 10.

Шаг 1 – Скачивание программы

Oracle SQL Developer доступен на официальном сайте Oracle, и его можно скачать абсолютно бесплатно, единственное, как и в случае с самой СУБД, необходимо авторизоваться или зарегистрироваться на сайте, при этом если Вы скачивали и устанавливали Oracle Database XE, то у Вас уже есть учетная запись Oracle и Вам достаточно авторизоваться на сайте.

Итак, переходим на страницу загрузки Oracle SQL Developer, вот она

Далее, нажимаем на ссылку «Download» в разделе Windows 64-bit with JDK 8 included.

Скриншот 1

После этого соглашаемся с условиями, отметив соответствующую галочку, и нажимаем на кнопку «Download sqldeveloper-20.2.0.175.1842-x64.zip». Если Вы еще не авторизованы на сайте, Вас перенаправит на страницу авторизации (где можно и зарегистрироваться), а если Вы уже авторизованы, то сразу начнется процесс загрузки.

Скриншот 2

В результате у Вас должен загрузиться ZIP-архив «sqldeveloper-20.2.0.175.1842-x64.zip» (на момент написания статьи это актуальная версия) размером около 500 мегабайт, в данном архиве находятся все необходимые для SQL Developer файлы.

Шаг 2 – Распаковка архива и запуск программы

После того как архив загрузится, его необходимо распаковать и запустить файл «sqldeveloper.exe».

При первом запуске у Вас могут спросить, есть ли у Вас сохраненные настройки, которые Вам хотелось бы импортировать, у нас таких нет, отвечаем «No».

Скриншот 3

В результате запустится программа и сначала появится окно, в котором Вас спросят, хотите ли Вы автоматически отправлять отчеты по работе программы в компанию Oracle, если не хотите, то снимите галочку и нажмите «OK».

Скриншот 4

Интерфейс Oracle SQL Developer выглядит следующим образом.

Скриншот 5

Настройка подключения к базе данных Oracle Database 18c Express Edition (XE)

Переходим к настройке подключения к базе данных Oracle Database 18c Express Edition (XE), для этого щелкаем на плюсик и выбираем «New Connection».

Скриншот 6

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

  • Name – имя подключения (придумываете сами);
  • Username – имя пользователя, в данном случае подключаемся от имени системного пользователя SYS;
  • Password – пароль пользователя SYS, это тот пароль, который Вы задали во время установки Oracle Database XE;
  • Role – SYSDBA (пользовательSYS является администратором сервера, поэтому выбираем соответствующую роль);
  • Hostname – адрес сервера, если Oracle Database установлен на этом же компьютере, то в поле оставляем Localhost;
  • Port – порт подключения, по умолчанию 1521;
  • Servicename – имя подключаемой базы данных Oracle Database. По умолчанию в Oracle Database 18c Express Edition (XE) создается база данных с именем XEPDB1, поэтому чтобы сразу подключиться к этой базе, вводим в это поле ее название, т.е. XEPDB

Скриншот 7

Чтобы проверить корректность всех введенных настроек, можно нажать на кнопку Test, и если Вы получили ответ в строке состояния «Успех», т.е. «Status: Success», то это означает, что все хорошо, сервер доступен и мы можем к нему подключиться с указанными настройками подключения.

Для сохранения подключения нажимаем «Save».

Скриншот 8

В результате Вы подключитесь к серверу и у Вас отобразится обозреватель объектов и окно для написания SQL запросов.

Скриншот 9

В Oracle Database 18c Express Edition (XE) есть схема «HR», которую можно использовать, например, для изучения языка SQL.

Заметка! Если Вас интересует язык SQL, то рекомендую почитать книгу «SQL код» – это самоучитель по языку SQL для начинающих программистов. В ней язык SQL рассматривается как стандарт, чтобы после прочтения данной книги можно было работать с языком SQL в любой системе управления базами данных.

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