- •Язык pl/sql
- •Блоки программы pl/sql
- •Основы программирования на языке pl/sql
- •Переменные программы
- •Управление ходом выполнения программы
- •Взаимодействие с базами данных
- •Объявление и использование подпрограмм: процедуры и функции
- •Работа с переменными типа запись
- •Атрибуты %type и %rowtype
- •Работа с курсорами
- •Встроенные пакеты утилит
- •Триггеры баз данных
- •Упражнение 4.21. Создание и использование триггеров базы данных
Основы программирования на языке pl/sql
Все процедурные языки имеют базовые элементы, которые необходимо изучить до начала работы и написания программ на этом языке. Базовые элементы языка PL/SQL включают:
объявление переменных программы и присвоение им значений;
управление порядком выполнения операторов программы с помощью циклов и условных операторов;
включение в программу команд SQL и взаимодействие с БД Oracle;
объявление и использование процедур и функций в блоках PL/SQL;
объявление заданных пользователем типов (записи и вложенные таблицы);
объявление и использование курсоров для обработки запросов, возвращающих более одной строки;
использование обработчиков исключений, реагирующих на ошибки при выполнении программы.
Переменные программы
Процедурно-ориентированные программы объявляют переменные и используют их для временного хранения информации. При объявлении переменной ееможно инициализировать сразу или сделать это позднее в теле программы. Если на переменную наложено ограничение состоящее в том, что ее значение не равно Null, то ее инициализация должна быть частью объявления. По умолчанию PL/SQL присваивает переменной значение Null, если ей не было присвоено значение явным образом. При объявлении переменной ей может быть задан любой тип Oracle и ANSI/ISO, тип, определенный пользователем, или один из подтипов (подтипом называется новый тип, являющийся подмножеством базового типа).
Рассмотрим объявление переменных и констант программы, их инициализацию и присвоение им значений в теле программы PL/SQL.
В примере есть несколько деталей, требующих уточнения:
при объявлении константы в объявление включается ключевое слово CONSTANT; константа должна быть инициализирована, после чего изменить ее значение невозможно;
если в программе объявляется переменная, принадлежащая к типу данных, имеющему ограничения, то это ограничение должно быть указано в объявлении, например VARCHAR2(20);
переменная todaysDate инициализируется с помощью функции SYSDATE; эта функция возвращает текущую дату и время, определяемые операционной системой компьютера, на котором хранится база данных;
в программе используется процедура DBMS_OUTPUT.PUT_LINE, осуществляющая вывод на стандартное устройство вывода;
при попытке выполнить блок не будет виден результат вызова процедуры DBMS_OUTPUT.PUT_LINE, если не установлена переменная среды SERVEROUTPUT например, с помощью команды SET SERVEROUTPUT ON;
для обозначения окончания программы на странице команд SQL используется строка, содержащая косую черту (/).
Для выполнения блока в программе SQL Developer необходимо нажать на кнопку Run Scriptили <F5>.
Рассмотрим присваивание значений переменным программы. Оператор присваивания в программе PL/SQL (:=) задает переменной значение, являющееся результатом вычисления выражения.
В примере используются константы, операция сцепления символьных строк и операторы сложения (|| и + ), а также функции LAST_DAY и SYSDATE. Большинство функций SQL поддерживаются и в операторах языка PL/SQL.