Конспект лекций по дисциплине «Сетевые базы данных», страница 18

В приведенном примере блок PL/SQL содержит раздел EXCEPTION, содержащий два обработчика.

DECLARE

A number;

B number;

BEGIN

A := 0;

B := 100/A;

EXCEPTION

WHEN ZERO_DIVIDE THEN

B := 0;

WHEN OTHERS THEN

Proc_err;

END;

Первый обработчик – ZERO_DIVIDE – обрабатывает ошибку, возникающую при делении на ноль. Это обработчик просто выполняет обнуление переменной B.

Второй обработчик – OTHERS – это обработчик особого типа, т.е. то самое исключение, о чем говорилось выше. Обработчик OTHERS выполняется тогда, когда тип возникшей ошибки не обрабатывается ни одним из имеющихся обработчиков или если других обработчиков нет. Так как этот обработчик «перехватывает» ошибки любых типов, его всегда нужно помещать в разделе EXCEPTION после всех других обработчиков.

Вопросы для самоконтроля

5.1.  Какие необязательные разделы содержит блок PL/SQL?

5.2.  Каковы отличительные особенности безымянного блока PL/SQL?

5.3.  Какие программные единицы хранятся в базе данных?

5.4.  В каком разделе блока PL/SQL не допускаются внутренние блоки?

5.5.  Что такое обработчик ошибок?

5.6.  В каких случаях управление ходом выполнения программы передается в раздел EXCEPTION?

5.7.  Как вызвать безымянный блок  из другой программы?

5.8.  В какой последовательности нужно размещать обработчики в разделе EXCEPTION?

5.9.  Для чего используется обработчик OTHERS?

5.10.  Какие операторы программы можно размещать в обработчике ошибок?

6. Простые типы данных PL/SQL

Язык PL/SQL позволяет использовать скалярные (простые) переменные, а также составные структуры данных различных типов. В данном курсе будут рассматриваться простые типы данных. Для изучения составных типов следует обратиться к рекомендуемой литературе.

Как и в SQL, в языке PL/SQL наиболее употребимыми типами данных являются:

·  NUMBER

·  CHAR

·  VARCHAR2

·  DATE

Кроме указанных типов в языке PL/SQL используются типы данных, отсутствующие в SQL. Среди них отметим следующие:

·  BOOLEAN

·  %TYPE

6.1. Числовые типы

Переменные типа NUMBER используются для хранения чисел в формате с фиксированной и плавающей точками. Диапазоны чисел, которые можно присваивать переменным, определяются следующими значениями:

·  положительные числа в интервале от 1 х 10–130 до 9.99...9 х 10125 (до 38 значащих цифр);

·  отрицательные числа от –1 х 10–130 до –9.99...9 х 10125 (до 38 значащих цифр);

Для объявления переменных типа NUMBER в разделе объявлений программы используется следующий формат

имя_переменной  NUMBER(точность, масштаб),

где имя_переменной – любая комбинация букв латинского алфавита и цифр, отвечающая правилам формирования идентификаторов языка PL/SQL (см. п.1.3); точность – максимальное общее количество цифр числа; масштаб – количество цифр дробной части числа (см. п.2.1). В следующем примере показано объявление двух переменных – целой A (целое число с точностью не более 10 цифр) и вещественной B:

DECLARE

A number(10);

B number(10,2);

BEGIN

(список команд SQL и PL/SQL)

EXCEPTION

(обработчики исключений)

END;

В том случае, если при объявлении переменной не указывается ни точность ни масштаб, эта переменная может использоваться для хранения как целых, так и вещественных чисел размером не более 38 цифр.

            6.2. Символьные типы данных

Переменные символьного типа могут использоваться для хранения символьных строк фиксированной и переменной длины.