PL/SQL Введение 1
Типы данных Типы доступные SQL (в Oracle) BOOLEAN CHAR NUMBER RECORD TABLE
Структура блока Секция заголовка (не обязательная) Секция объявления Выполняемая секция Секция исключения (не обязательная)
Секция заголовка Заголовок верхнего блока для функции, процедуры или триггера содержит спецификацию этой функции, процедуры или триггера Для анонимных блоков заголовок может содержать только имя метки: >
Секция объявления Описание переменных, констант и пользовательских типов данных: DECLARE Num_a NUMBER := 6; Num_b NUMBER;
Секция выполнения, исключения BEGIN [ тело основной программы] [EXCEPTION обработка исключения] END;
Пример анонимного блока: DECLARE Num_a NUMBER := 6; Num_b NUMBER; BEGIN Num_b := 0; Num_a := Num_a / Num_b; EXCEPTION WHEN ZERO_DIVIDE THEN dbms_output.put_line(Delenie na 0); END;
Секция исключения EXCEPTION WHEN имя_исключения THEN действия WHEN имя_исключения действия …
Исключения Определение собственного исключения (в секции объявления): my_exception EXCEPTION; Порождение исключения: RAISE my_exception;
Условный оператор IF IF условие1 THEN действия 1; [ELSIF условие2 THEN действия 2;] … [ELSE альтернатианые действия;] END IF;
Условный оператор CASE CASE переменная WHEN значение1 THEN возвращаемое_значение1 WHEN значение2 THEN возвращаемое_значение2 ELSE … END;
Условный оператор IF (order_amt = small_order_amt) THEN RETURN (order_amt+ order_amt * small_disct / 100); ELSIF (order_amt >= large_order_amt) THEN RETURN (order_amt+ order_amt * large_disct / 100); ELSE RETURN (order_amt); END IF;
Циклы: LOOP LOOP операторы; EXIT имя_цикла [WHEN условие_выхода] операторы; END LOOP;
Циклы: WHILE WHILE условие LOOP операторы; END LOOP; (EXIT также можно использовать)
Циклы: FOR FOR счетчик IN [REVERSE] нижняя_граница.. верхняя_граница LOOP операторы; END LOOP;
Задания Написать Hello World! Сделать цикл постоянного уменьшения на 1 целочисленной переменной; определить исключение, порождаемое в момент, когда значение переменно стало равно 5; написать обработку исключения, в которой вывести текстовое сообщение о равенстве переменной значению 5