- •Язык pl/sql
- •Блоки программы pl/sql
- •Основы программирования на языке pl/sql
- •Переменные программы
- •Управление ходом выполнения программы
- •Взаимодействие с базами данных
- •Объявление и использование подпрограмм: процедуры и функции
- •Работа с переменными типа запись
- •Атрибуты %type и %rowtype
- •Работа с курсорами
- •Встроенные пакеты утилит
- •Триггеры баз данных
- •Упражнение 4.21. Создание и использование триггеров базы данных
Язык pl/sql
Язык PL/SQL – фирменный процедурно-ориентированный язык программирования СУБД Oracle, встроенный в Oracle XE. С его помощью можно писать программы обработки информации, включающие в себя:
процедуры языка PL/SQL (для управления выполнением операторов);
команды языка SQL для доступа к базам данных Oracle.
Язык SQL представляет собой лишь средство доступа к БД, позволяющее приложениям вводить данные в БД Oracle и извлекать их из нее. Он не является полноценным языком программирования приложений БД. Для разработки таких приложений необходимо использовать высокоуровневый язык, включающий в себя язык SQL. Для программирования сервера баз данных Oracle и связанных с ним приложений можно использовать процедурный язык PL/SQL.
Язык PL/SQL похож на язык программирования Ada, многие их процедурные конструкции совпадают, однако он оптимизирован для тесного взаимодействия с СУБД Oracle.
Язык PL/SQL имеет операторы, позволяющие объявлять переменные и константы, управлять ходом выполнения программы, вводить данные и работать с ними и многие другие команды.
Блоки программы pl/sql
Программа на языке PL/SQL имеет структуру из отдельных блоков, в которых сгруппированы логически связанные объявления и операторы. Каждый блок программы PL/SQL решает свою конкретную задачу. Это позволяет организовать программу PL/SQL так, чтобы она была понятна и легко читалась.
Весь код PL/SQL, выполняющий фактическую работу, состоит из блоков. Блок PL/SQL состоит из четырех разделов:
раздел заголовка;
раздел объявлений (деклараций);
выполняемый раздел (основное тело программы);
раздел исключений (блок обработки ошибок).
Анонимный блок – блок PL/SQL без секции заголовка. Анонимные блоки могут выполняться из SQL*Plus, использоваться в функциях, процедурах и триггерах PL/SQL. Один блок можно помещать в другой блок.
DECLARE
-- раздел объявлений (необязателен)
BEGIN
-- тело программы (обязательно)
EXCEPTION
-- обработчики ошибок (необязательны)
END;
Основы языка PL/SQL будем изучать путем выполнения анонимных блоков в Oracle SQL Developer. Анонимный блок не хранится постоянно в базе данных Oracle. Приложение просто отправляет блок на сервер базы данных для обработки его в режиме выполнения.
Заголовок блока верхнего уровня функции, процедуры или триггера содержит их спецификацию. Для анонимных блоков заголовок содержит ключевое слово DECLARE. Для помеченных блоков заголовок содержит имя метки в двойных угловых скобках, за которым следует ключевое слово DECLARE:
≪just_a_label≫
DECLARE
В процедуре с вложенными блоками, можно ссылаться на элемент блока, предваряя имя элемента именем блока (метка_блока . метка_элемента).
В разделе объявлений объявляются переменные, константы, обработчики исключений и другие объекты, которые становятся доступны в других частях этого же блока. Когда выполнение блока завершается, объявленные элементы перестают существовать. Все, что находится в секции объявлений, может использоваться только внутри блока (существует на протяжении его времени жизни). Часть кода, в которой может использоваться переменная, называется областью видимости. Раздел объявлений начинается ключевым словом DECLARE и неявно заканчивается ключевым словом BEGIN тела программы. Если в программе не требуются объявления, то раздел объявлений может быть опущен.
Тело программы блока содержит исполняемые операторы блока (в теле программы блок выполняет свои конкретные функции). Тело блока начинается ключевым словом BEGIN и заканчивается ключевым словом EXCEPTION, которое открывает раздел обработчика исключений блока. Если блок не содержит обработчиков исключений, то тело программы заканчивается ключевым словом END, закрывающим весь блок.
Необязательный раздел обработки ошибок блока содержит обработчики исключений (процедуры обработки ошибок) данного блока. Если при выполнении какого-либо оператора в теле программы возникает ошибка, то управление передается соответствующему обработчику в разделе обработки исключений для выполнения предусмотренных действий. Раздел обработки исключений блока начинается ключевым словом EXCEPTION и заканчивается ключевым словом END. Если программа не требует обработки исключений, то раздел может быть опущен.
Комментарии не являются обязательными элементами программы, но их следует включать для описания объявленных объектов и действий операторов. Комментарии описывают цели выполнения отдельных сегментов программы. В языке PL/SQL используются два типа комментариев.
-- Однострочный комментарий
/* Многострочный
комментарий*/