Разбираемые темы:
Введение:
- Программные конструкции PL/SQL;
- Описание схемы HR (Human Resources), используемой в курсе;
- Работа в Oracle SQL Developer;
- Редактирование и выполнение анонимного блока в SQL Developer;
- Сохранение и выполнение SQL-скриптов;
- Ссылки на дополнительные ресурсы.
Создание процедур:
- Описание использования процедур;
- Создание процедур;
- Создание процедур с параметрами;
- Вызов процедуры;
- Обработка исключений;
- Удаление процедуры.
Создание функций:
- Описание использования функций;
- Создание функций;
- Вызов функции;
- Функции в SQL-командах;
- Удаление функции;
- Различия между процедурами и функциями.
Создание пакетов:
- Описание пакетов и перечисление их компонент;
- Спецификация и тело пакета;
- Создание пакетов, задание частных и общедоступных конструкций;
- Вызов пакетных объектов;
- Удаление пакетов.
Дополнительные особенности работы с пакетами:
- Перегрузка пакетных процедур и функций;
- Как избежать ошибок при взаимных ссылках подпрограмм;
- Инициализация переменных в процедуре, выполняемой только один раз;
- Использование пакетных функций в SQL;
- Сохранение состояния пакетных переменных, курсоров, таблиц и записей;
- Использование PL/SQL-таблиц записей в пакетах.
Использование некоторых стандартных пакетов Oracle (для ввода-вывода):
- Обзор стандартных пакетов Oracle;
- Пакет DBMS_OUTPUT;
- Пакет UTL_FILE;
- Пакет UTL_MAIL;
- Пакет DBMS_SCHEDULER;
- Пакет DBMS_METADATA;
- Пакет DBMS_LOB.
Динамический SQL:
- Этапы выполнения SQL-предложения;
- Выполнение динамических SQL-предложений с использованием EXECUTE IMMEDIATE;
- Выполнение динамических SQL -предложений с использованием пакета DBMS_SQL.
Дизайн кода PL/SQL:
- Создание в пакетах констант и исключений;
- Локальные подпрограммы;
- Права создателя и вызывающего хранимую процедуру;
- Использование подсказки NOCOPY для программных параметров;
- Автономные транзакции;
- Использование клаузы DETERMINISTIC;
- Использование коллекций для массовых операций.
Создание триггеров базы данных:
- Описание различных типов триггеров;
- Определение триггеров базы данных и их использование;
- Создание триггеров баз данных;
- Строковые и операторные триггеры на таблицах;
- Триггеры на представления, INSTEAD OF;
- Правила срабатывания триггеров базы данных;
- Удаление триггеров базы данных.
Триггеры на DDL-предложения и на события в базе данных:
- Создание триггеров на DDL-предложения;
- Триггеры, срабатывающие по системным событиям в базе данных;
- Ограничения на триггеры базы данных;
- Триггеры LOGON и LOGOFF;
- Предложение CALL в триггере;
- Рекомендации по конструированию триггеров.
Использование PL/SQL-компилятора:
- Инициализационные параметры для PL/SQL-компиляции;
- Предупреждения времени компиляции;
- Пакет DBMS_WARNING;
- Предупреждающее сообщение PLW 06009.
Управление кодом PL/SQL:
- Параметр настройки PLSQL_CCFLAGS;
- Пакет DBMS_DB_VERSION;
- Условная компиляция;
- Сокрытие кода (Obfuscation);
- Утилита свертки;
- Пакет DBMS_DDL.
Отслеживание зависимостей:
- Обзор объектных зависимостей;
- Процедурные зависимости в представлениях словаря данных;
- Оценка влияния изменений объектов БД на хранимые процедуры;
- Использование представлений USER_DEPENDENCIES и DEPTREE;
- Управление локальными и удаленными зависимостями;
- Установка значения инициализационного параметра REMOTE_DEPENDENCIES_MODE.