ОБЗОР PL/SQL Общие сведения Что такое PL/SQL? • PL/SQL - это язык программирования, объединяющий в себе возможности процедурных языков и SQL. Иначе говоря, он представляет собой процедурное расширение языка SQL, отсюда и название - Procedural Language SQL. PL/SQL является родным языком Oracle, так как он интегрирован с сервером базы данных и его код выполняется непосредственно сервером, поэтому программы, написанные на PL/SQL, работают быстро и эффективно. Возможность использовать SQL в блоках PL/SQL - одна из важнейших его характеристик. PL/SQL применяется для доступа к базам данных Oracle из различных сред разработки, одной из которой является Oracle Forms. Преимущества PL/SQL • Модульная разработка программ • Объявление идентификаторов • Структуры управления процедурного языка • Обработка ошибок • Переносимость • Интеграция • Повышение производительности Резкое повышение производительности PL/SQL SQL ПРИЛОЖЕНИЕ SQL SQL Другие DBMS SQL Приложение SQL IF…THEN SQL ELSE SQL END IF SQL Oracle с PL/SQL Блочная структура PL/SQL PL/SQL, как и любой другой процедурный язык программирования, состоит из логически связанных элементов, объединенных в программные единицы, которые называются блоками. Каждый модуль PL/SQL состоит как минимум из одного блока. Блоки PL/SQL могут содержать любое количество подблоков, то есть иметь различный уровень вложенности. Блок как структурная единица логически связанных элементов определяет область их действия, делает код читабельным и простым для понимания. В PL/SQL различают два типа блока: анонимные блоки; именованные блоки. Блочная структура PL/SQL DECLARE – раздел объявлений (необязательно ) . ◦ Переменные, константы, курсоры, пользовательские исключения BEGIN - обязательно ◦ Операторы SQL ◦ Управляющие операторы PL/SQL EXCEPTION - необязательно ◦ Действия, выполняемые при возникновении ошибки END - обязательно Анонимные блоки Это блоки, которые не имеют имени. Анонимные блоки не могут быть вызваны другими блоками, так как у них нет имени, на которое можно ссылаться. Именованные блоки Именованные блоки - это блоки, которые имеют имя, например, функция или процедура. Несмотря на то что анонимные блоки используются часто, каждый разработчик пытается оформить свою PL/SQL-программу как именованный блок. Преимущество именованного блока в том, что у него есть имя и на него можно ссылаться из других блоков. Пример блока PL/SQL DECLARE v_product_id s_product.id%TYPE; BEGIN SELECT id INTO v_product_id FROM s_product WHERE id = &p_product_id; DELETE FROM s_inventory WHERE product_id = v_product_id; СОMMIТ; EXCEPTION WHEN OTHERS THEN ROLLBACK; INSERT INTO exception_table (message) VALUES ('Возникла ошибка в базе данных.'); COMMIT; END; Программные конструкции Анонимный блок Триггер приложения Триггер базы данных DECLARE BEGIN EXCEPTION END; Хранимая процедура/ функция Прикладная процедура/ функция Пакет процедур Типы блоков [DECLARE] PROCEDURE name IS BEGIN ◦ statements [EXCEPTION] END; FUNCTION name RETURN datatype IS BEGIN – statements [EXCEPTION] END; BEGIN – statements RETURN value; [EXCEPTION] END; Среда PL/SQL Блок PL/SQL Ядро PL/SQL Блок PL/SQL не SQL SQL Блок PL/SQL Сервер Oracle Блок PL/SQL Продукт Procedure Builder • • • • Графическая среда для разработки кода PL/SQL Встроенные редакторы Компиляция, тестирование и отладка кода Разбиение приложения на компоненты позволяет перемещать программные единицы мышью между клиентом и сервером