Название: Язык PL/SQL
Автор: Иван Сергеевич Задворьев
Издательство: ЛитРес: Самиздат
Жанр: Базы данных
isbn:
isbn:
Без перечисления столбцов результирующих выборок SQL-запросов пишется очень компактный код вида
l_person person%ROWTYPE;
SELECT * INTO l_person FROM person WHERE id=13243297;
print(l_person);
SQL-запрос выбирает все столбцы таблицы person, и у объявленной с помощью %ROWTYPE переменной l_person будет ровно столько же атрибутов, сколько столбцов у таблицы person, с такими же именами и типами данных, в том же порядке следования. Значения всех столбцов считываемой строки таблицы присвоятся соответствующим атрибутам записи PL/SQL. Если в таблице person в будущем появится новый столбец, он автоматически «подхватится» и SQL-запросом (SELECT *) и объявлением переменной l_person в программе PL/SQL. Никаких изменений в код вносить не потребуется, автоматическая перекомпиляция программы произойдет при первом обращении к ней.
Объявлять переменные как записи PL/SQL с помощью атрибута %ROWTYPE можно не только на основе какой-то одной таблицы, но и на основе столбцов результирующих выборок произвольных SQL-запросов. Для этого записи PL/SQL объявляются на основе явных курсоров, рассматриваемых далее.
Структура программы PL/SQL
Структура блока
В PL/SQL, как и в большинстве процедурных языков программирования, наименьшей единицей группировки исходного кода является блок. Он представляет собой фрагмент кода, определяющий границы выполнения кода и области видимости для объявлений. Блоки могут вкладываться друг в друга.
Разделы блока PL/SQL
Блок PL/SQL состоит из четырех разделов:
раздел заголовка;
раздел объявлений;
исполняемый раздел;
раздел обработки исключений.
Разделов заголовка, объявлений и обработки исключений в блоке может не быть, обязательным является только исполняемый раздел.
Синтаксически блок PL/SQL выглядит следующим образом:
раздел заголовка
DECLARE
раздел объявлений
BEGIN
исполняемый раздел
EXCEPTION
раздел обработки исключений
END;
В разделе заголовка указываются:
тип блока (процедура, функция);
имя блока (имя процедуры, функции);
имена параметров, их типы данных и режимы передачи значений.
В разделе объявлений объявляются пользовательские типы данных, переменные и константы, которые потом используются в исполняемом разделе и разделе обработки исключений. В исполняемом разделе реализуется собственно логика программы. В вырожденном случае там может присутствовать только одна «пустая» команда NULL. Обработка исключений рассматривается далее в отдельном параграфе.
Ключевые слова BEGIN и END в языке PL/SQL являются операторными скобками, подобными СКАЧАТЬ