Курс Oracle Database: Program with PL/SQL, начинается с введения в процедурный язык программирования PL/SQL и рассматривает преимущества его использования. Под руководством инструктора вы научитесь разрабатывать хранимые процедуры, функции, узнаете о программных пакетах, триггерах и многом другом.
Создание качественного PL/SQL-кода, оптимизация производительности СУБД поможет вам предоставлять более качественный сервис и более оптимально использовать IT-ресурсы
На курсе изучается
- Условное управление выполнением кода (циклы, блоки условий).
- Использование пакетов PL/SQL для группировки связанных процедур и функций.
- Создание триггеров для решения бизнес-задач
- Использование встроенных пакетов для отладки, вывода на экран и в файл
- Создание анонимных блоков, процедур и функций
- Объявление переменных в коде PL/SQL
Данный курс является компиляцией курсов Oracle Database: PL/SQL Fundamentals и Oracle Database: Develop PL/SQL Program Units
Аудитория
- Разработчики приложений
- Администраторы баз данных
- Разработчики PL/SQL
- Разработчики портальных решений
- Системные аналитики
- Технические консультанты
Предварительная подготовка
После курса вы будете уметь
- Использовать условную компиляцию
- Создавать программные пакеты PL/SQL для логической группировки процедур и функций
- Создавать перегруженные пакеты и подпрограммы для большей гибкости
- Создавать анонимные блоки PL/SQL
- Использовать встроенные процедуры для вывода информации на экран, в файл и отправки почтовых сообщений
- Использовать динамический SQL для увеличения гибкости кода
- Понимать возможности и синтаксис PL/SQL
- Создавать и выполнять отладку хранимых процедур и функций
- Использовать программные конструкции и условные операторы для управления выполнением программой (циклы, контрольные блоки, явные курсоры)
- Управлять зависимости между подпрограммами PL/SQL
- Обрабатывать ошибки в процессе выполнения кода
- Создавать триггеры
Программа курса
Модуль 1. Введение
- Цели курса
- Программа курса
- Знакомство со схемойHuman Resources (HR)
- Средства разработки PL/SQL, используемые в курсе
- Знакомство с SQL Developer
Модуль 2. Введение в PL/SQL
- Обзор PL/SQL
- Преимущества подпрограмм PL/SQL
- Типы блоков кода PL/SQL
- Пример создания анонимного блока
- Как выводить данные из блока PL/SQL?
Модуль 3. Объявление идентификаторов PL/SQL
- Типы идентификаторов, используемые в подпрограмме PL/SQL
- Использование секции объявления
- Использование переменных
- Определение скалярных типов
- Атрибут %TYPE
- Что такое переменные подстановки?
- Последовательности в выражениях PL/SQL
Модуль 4. Создание исполняемых выражений
- Основы синтаксиса PL/SQL
- Использование комментариев
- Использование SQL-функций в PL/SQL
- Преобразование типов данных
- Вложенные блоки
- Операторы в PL/SQL
Модуль 5. Взаимодействие с СУБД Oracle
- Вызов оператора SELECT из PL/SQL
- Получение данных PL/SQL
- Использование курсоров
- Ошибки при именовании операторов DML
- Модификация данных в PL/SQL
- Атрибуты курсоров для получения обратной связи при DML
- Сохранение и откат транзакций
Модуль 6. Контроль исполнения
- Условные операторы IF
- Условные операторы CASE
- Использование простых циклов (LOOP)
- Выражение WHILE … LOOP
- Выражение FOR …LOOP
- Использование команды CONTINUE
Модуль 7. Составные типы данных
- Использование записей в PL/SQL
- Атрибут %ROWTYPE
- Вставка и обновление записей в PL/SQL
- Таблицы INDEX BY
- Изучение методов таблиц INDEX BY
- Использование таблиц записей INDEX BY
Модуль 8. Явные курсоры
- Что такое явные курсоры?
- Объявление курсоров
- Открытие курсора
- Получение данных из курсора
- Закрытие курсора
- Использование конструкции CURSOR FOR LOOP
- Атрибуты %NOTFOUND и %ROWCOUNT
- Выражения FOR UPDATE и WHERE CURRENT
Модуль 9. Обработка исключений
- Определение исключений
- Обработка исключений в PL/SQL
- Перехват встроенных ошибок
- Перехват пользовательских ошибок
- Передача исключений
- Процедура RAISE_APPLICATION_ERROR
Модуль 10. Хранимые процедуры
- Модульный дизайн программ
- Модульная разработка и блоки PL/SQL
- Описание среды выполнения PL/SQL
- Преимущества использования подпрограмм PL/SQL
- Отличия подпрограмм и анонимных блоков
- Создание, вызов и удаление хранимых процедур
- Параметры процедур и их типы
- Отображение информации о процедуре
Модуль 11. Создание и отладка функций
- Создание, вызов и удаление функций
- Преимущества использования функций
- Шаги по созданию функции
- Вызов функций из SQL-выражений
- Ограничения при вызове функций
- Побочные эффекты при использовании функций
- Отображение информации о функции
- Отладка функций и процедур
Модуль 12. Пакеты
- Преимущества использования пакетов
- Описание пакетов
- Из чего состоят пакеты?
- Разработка пакета
- Видимость компонентов в пакетах
- Создание тела и заголовка пакета при помощи команды SQL CREATE в SQL Developer
- Вызов кода в пакетах
- Отображение кода пакета при помощи словаря данных
Модуль 13. Разработка пакетов
- Перегрузка подпрограмм PL/SQL
- Использование пакета STANDARD
- Использование прямых объявлений для избегания проблемы Illegal Procedure Reference
- Использование функций в SQL и их ограничения
- Сохранение состояния пакета
- Сохранение состояния курсора в пакете
- Побочные эффекты подпрограмм в PL/SQL
- Вызов Tables of Records из пакетов
Модуль 14. Использование встроенных пакетов при разработке программ
- Описание встроенных пакетов
- Примеры
- Как работает пакет DBMS_OUTPUT
- Использование пакета UTL_FILE для взаимодействия с файловой системой сервера
- Отправка почты при помощи пакета UTL_MAIL
- Написание подпрограмм UTL_MAIL
Модуль 15. Динамический SQL
- Процесс выполнения SQL
- Что такое динамический SQL?
- Определение переменных курсорного типа
- Динамическое выполнение блока PL/SQL
- Настройка Native Dynamic SQL для компиляции в PL/SQL
- Использование пакета DBMS_SQL
- Использование DBMS_SQL с параметризированными DML выражениями
- Функциональность динамического SQL
Модуль 16. Принципы построения кода PL/SQL
- Стандартизация констант и исключений
- Локальные подпрограммы
- Автономные транзакции
- Директива компилятора NOCOPY
- Использование директивы PARALLEL_ENABLE
- Межсессионное кеширование результатов функций в PL/SQL
- Функции с выражением DETERMINISTIC
- Использование Bulk-привязки для улучшения производительности
Модуль 17. Триггеры
- Определение триггеров
- Типы событий для триггеров
- Типовые сценарии использования триггеров
- Создание триггеров для DML операций при помощи CREATE TRIGGER в SQL Developer
- Типы событий и время срабатывания триггера
- Различия триггеров уровня выражения и уровня записи
- Создание триггеров INSTEAD OF и DISABLED
- Управление, тестирование, удаление триггеров
Модуль 18. Создание составных, DDL, и событийных триггеров уровня СУБД
- Составные триггеры
- Понимание временных секций составного триггера
- Структура составного триггера для таблицы и представления
- Использования составного триггера для решения ситуации Mutating Table Error
- Сравнение триггеров и хранимых процедур
- Триггеры на операции DDL
- Триггеры на системные события и события экземпляра БД
- Привилегии, необходимые для работы с триггерами
Модуль 19. Компилятор PL/SQL
- Компиляция PL/SQL
- Параметры компиляции PL/SQL
- Отображение предупреждений компилятора PL/SQL
- Обзор предупреждений компилятора PL/SQL
- Категории сообщений компилятора PL/SQL
- Уровень отображения сообщений компилятора: SQL Developer, параметр PLSQL_WARNINGS и DBMS_WARNING
- Отображение предупреждений из SQL Developer, SQL*Plus или представления словаря данных
Модуль 20. Управление зависимостями
- Зависимости между объектами схемы
- Отображение прямых зависимостей из представления USER_DEPENDENCIES
- Запрос состояния объектов
- Инвалидация зависимых объектов
- Отображение прямых и непрямых зависимостей
- Управление зависимостями в Oracle Database 12c
- Удаленные зависимости
- Рекомпиляция пакетов PL/SQL