Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных Язык SQL.doc
Скачиваний:
0
Добавлен:
29.12.2019
Размер:
1.36 Mб
Скачать

1. Оператор присваивания

переменная:= выражение;

2. Условный оператор

IF условие THEN

оператор1; оператор2;

...

[ELSIF условие THEN

оператор3; оператор4;

...]

[ELSE

оператор5; оператор6;

...]

END IF;

3. Операторы цикла

Бесконечный цикл, условие выхода задается в теле цикла

LOOP

оператор1; оператор2;

...

EXIT WHEN условие выхода из цикла;

END LOOP;

Цикл с предусловием

WHILE условие LOOP

оператор1; оператор2;

...

END LOOP;

Цикл с параметром

FOR параметр IN (множество значений) LOOP

оператор1; оператор2; ...

END LOOP;

Множество значений параметра обычно задается в виде диапазона

(начальное_значение .. конечное_значение)

5. Оператор безусловного перехода:

GOTO метка;

...

метка: оператор;

6. Оператор возврата из процедуры/функции

RETURN;

RETURN выражение; (только функции)

7. Комментарии

Однострочный комментарий обозначается так:

-- далее следует текст комментария до конца строки

Многострочный комментарий обозначается аналогично языку С:

/* текст комментария может располагаться где угодно и занимать сколько угодно строк */

8. Средства для обработки исключительных ситуаций

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

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

Для стандартных исключительных ситуаций существует большое число предустановленных имен. Пользовательская исключительная ситуация вводится объявлением переменной типа EXCEPTION. Генерация исключений из программы выполняется в PL/SQL оператором RAISE.

Обработчик исключений в PL/SQL, общий для всех исключений, составляет отдельную часть блока PL/SQL, начинающуюся со слова EXCEPTION и содержащую набор операторов WHEN, распознающих типы исключений и задающих действия, выполняемые по каждому типу (возможны любые действия, которые можно запрограммировать средствами PL/SQL).

Например:

DECLARE

err EXCEPTION;

BEGIN

INSERT INTO … VALUES … ;

SELECT ... INTO …;

IF ... THEN

RAISE err;

...

EXCEPTION

WHEN DUPLICATE_KEYS THEN

...

WHEN TOO_MANY_ROWS THEN

...

WHEN err THEN

...

WHEN OTHERS THEN

...

END;

В приведенном примере имеется два предопределенных имени для стандартных исключительных ситуаций, возникающих в процессе выполнения команд INSERT и SELECT …INTO и предопределенное имя OTHERS, предназначенное для обозначения любой другой исключительной ситуации, которую процедура отдельно не обрабатывает. Переменная err предназначена для возбуждения пользовательской исключительной ситуации при помощи оператора RAISE.

Как видим из приведенного примера, блок PL/SQL может содержать команды языка SQL, которые органично сочетаются с операторами языка высокого уровня. Эта тема заслуживает отдельного обсуждения, поскольку механизм встраивания команд в язык высокого регламентируется стандартом SQL и практически одинаков во всех СУБД.