Детальна програма курсу
Введение
- Цели курса и план
- Обзор учебной схемы курса - Персонал (HR)
- Обзор документации Oracle Database 12c по SQL и PL/SQL и дополнительных материалов
- Инструменты разработки, используемые в курсе
- Использование SQL Worksheet
- Выполнение команд SQL
- Работа с файлами сценариев
- Создание и выполнение анонимных блоков
Создание хранимых процедур
- Блоки PL/SQL и подпрограммы
- Использование и достоинства процедур
- Создание, вызов и удаление процедур
- Использование формальных и актуальных параметров
- Различные режимы передачи параметров
- Передача параметров при помощи позиционного, именованного или же комбинированного метода
- Обработка исключений процедурах
- Просмотр информации о процедурах
Создание хранимых функций и отладка подпрограмм
- Разница между процедурами и функциями
- Разработка функций
- Создание, выполнение и удаление функций
- Преимущества использования хранимых функций в SQL
- Использование пользовательских функций в SQL
- Использование функции PL/SQL в конструкции WITH
- Ограничения на вызов функций из SQL
Создание пакетов
- Пакеты PL/SQL
- Компоненты пакета PL/SQL
- Область видимости компонент пакета PL/SQL
- Разработка пакета PL/SQL
- Создание спецификации и тела пакета
- Вызов пакетных конструкций
- Создание и использование пакета без тела
- Удаление пакета
Работа с пакетами
- Перегрузка пакетных подпрограмм в PL/SQL
- Использование предварительного объявления для разрешения ссылок на еще не описанные программные единицы
- Инициализация пакетов
- Ограничения на использование пакетных функций в SQL
- Контроль побочных эффектов в подпрограммах PL/SQL
- Постоянное состояние пакетов
- Постоянное состояние пакетных переменных и курсоров
- Использование таблиц типа данных RECORD в пакетах
Использование пакетов, поставляемых Oracle, в разработке приложений
- Обзор пакетов, поставляемых Oracle
- Примеры некоторых стандартных пакетов
- Как работает пакет DBMS_OUTPUT?
- Использование пакета UTL_FILE для работы с файлами операционной системы
- Использование пакета UTL_MAIL
Динамический SQL
- Этапы выполнения команды SQL
- Что такое динамический SQL?
- Зачем нужен динамический SQL?
- Использование родного динамического SQL (NDS) для компиляции кода PL/SQL
- Определение переменных в курсоре
- Динамическое выполнение блока PL/SQL
- Динамическое выполнение блока PL/SQL
- Динамическое выполнение блока PL/SQL
Рекомендации по дизайну кода PL/SQL
- Стандартизация констант в пакете с константами
- Стандартизация исключений в пакете с исключениями
- Использование локальных подпрограмм в коде PL/SQL
- Выдача ролей на пакеты и хранимые процедуры
- Использование подсказки компилятору NOCOPY для передачи параметра по ссылке
- Применение подсказки компилятору PARALLEL_ENABLE для оптимизации
- Использование подсказки компилятору AUTONOMOUS_TRANSACTION для запуска независимых транзакций внутри одной транзакции
- Разница между правами вызывающего и правами владельца
Создание триггеров базы данных
- Описание различных видов триггеров
- Работа с триггерами
- Создание триггеров базы данных
- Описание правил срабатывания триггеров
- Удаление триггеров
Создание комбинированных (COMPOUND) триггеров, DDL-триггеров и триггеров, срабатывающих по системным событиям базы данных
- Работа с комбинированными триггерами
- Работа с комбинированными триггерами
- Изменяющиеся таблицы и триггеры
- Создание триггеров, срабатывающих на команды DDL
- Создание триггеров, срабатывающих на системные события
- Получение информации о триггерах
Использование компилятора PL/SQL
- Использование компилятора PL/SQL
- Параметры инициализации, влияющие на компиляцию кода PL/SQL
- Категории предупреждений компилятора
- Просмотр текущих значений параметра инициализации PLSQL_WARNINGS
- Просмотр предупреждений компилятора при помощи SQL Developer, SQL*Plus или представлений словаря данных
- Рекомендации по использованию PLSQL_WARNINGS
Сопровождение зависимостей
- Обзор зависимостей между объектами
- Отслеживание зависимостей между объектами при помощи представлений словаря данных
- Определение эффекта от изменения объекта базы данных на процедуры и функции
- Локальные и удаленные зависимости