Oracle Database 12c: Program with PL/SQL

Продолжительность курса — 5 дней

Описание Услуги

Курс предназначен для разработчиков с базовыми знаниями SQL. Прослушав курс, слушатели научатся создавать анонимные блоки PL/SQL, объявлять переменные, обрабатывать исключения, разрабатывать, выполнять и сопровождать хранимые программные единицы PL/SQL: процедуры, функции, пакеты и триггеры базы данных.

01. Цель курса

После успешного прохождения курса слушатели будут уметь:

  • Создавать анонимные блоки PL/SQL
  • Использовать код PL/SQL как интерфейс к базе данных
  • Использовать программные конструкции PL/SQL и контроль потока операций (циклы, управляющие структуры и явные курсоры)
  • Обрабатывать ошибки на стадии исполнения
  • Создавать и выполнять хранимые процедуры и функции
  • Разрабатывать и использовать пакеты PL/SQL
  • Использовать перегруженные пакетные подпрограммы для большей гибкости кода
  • Применять пакеты, поставляемые Oracle, в разработке приложений
  • Создавать триггеры для решения сложных бизнес-правил
  • Строить и выполнять команды SQL динамически
  • Сопровождать подпрограммы и триггеры PL/SQL
  • Воздействовать на компилятор PL/SQL

02. Аудитория

  • Разработчики порталов
  • Администраторы баз данных
  • Разработчики форм
  • Системные аналитики
  • Разработчики
  • Технические консультанты
  • Разработчики приложений
  • Разработчики PL/SQL

04. Связанные курсы

  • Using Java — for PL/SQL and Database Developers
  • Oracle Database: SQL Tuning for Developers
  • Oracle Database 12c: Advanced PL/SQL

Содержание курса

01. Введение

Задачи курса. Программа курса. Обзор учебной схемы курса — Персонал (HR). Инструменты разработки, используемые в курсе. Введение в SQL Developer.

02. Введение в PL/SQL

Обзор PL/SQL. Преимущества и структура PL/SQL. Обзор типов блоков PL/SQL. Создание простого неименованного блока PL/SQL. Генерация вывода из блоков PL/SQL.

03. Объявление идентификаторов в PL/SQL

Различные типы идентификаторов в подпрограммах PL/SQL. Описание и инициализация переменных. Описание скалярных типов данных. Атрибут TYPE. Связанные (bind) переменные. Использование последовательностей в выражениях PL/SQL.

04. Исполняемые операторы

Лексические единицы в блоке PL/SQL. Комментарии в коде. Функции SQL в PL/SQL. Преобразование типов данных. Вложенные блоки как выражения. Операторы в PL/SQL.

05. Взаимодействие с сервером Oracle

Использование операторов SELECT в PL/SQL. Извлечение данных в PL/SQL при помощи оператора SELECT. Концепции SQL-курсоров. Соглашения об именовании при извлечении данных и работе с операторами DML. Изменение данных на сервере при помощи PL/SQL. Концепции SQL-курсоров. Атрибуты SQL-курсоров для обратной связи с операторами DML. Фиксация и откат транзакций.

06. Управляющие структуры

Условное управление с использованием операторов IF. Условное управление с использованием операторов CASE. Описание простого выражения Loop. Описание выражения While Loop. Описание выражения For Loop. Контроль итераций в циклах.

07. Работа с составными типами данных

Записи PL/SQL. Атрибут %ROWTYPE. Вставка и обновление при помощи записей PL/SQL. Ассоциативные массивы INDEX BY. Методы работы с ассоциативными массивами INDEX BY. Ассоциативные массивы записей.

08. Использование явных курсоров

Определение курсора. Открытие курсора. Извлечение данных из курсора. Закрытие курсора. Курсорные циклы FOR с подзапросами. Атрибуты %NOTFOUND и %ROWCOUNT. Описание атрибутов FOR UPDATE и WHERE CURRENT.

09. Обработка исключений

Определение исключений. Обработка исключений в PL/SQL. Перехват предопределённых исключений сервера Oracle. Перехват не предопределенных исключений сервера Oracle. Перехват исключений, определяемых пользователями. Распространение исключений. Процедура RAISE_APPLICATION_ERROR.

10. Создание хранимых процедур

Модульная разработка при помощи блоков PL/SQL. Среда выполнения PL/SQL. Преимущества использования подпрограмм PL/SQL. Различие между анонимными блоками и подпрограммами. Создание, вызов и удаление процедур. Параметры процедур и различные режимы передачи параметров. Просмотр информации о процедурах.

11. Создание хранимых функций и отладка подпрограмм

Создание, выполнение и удаление функций. Преимущества использования хранимых функций в SQL. Этапы создания хранимой функции. Использование пользовательских функций в SQL. Ограничения на вызов функций из SQL. Побочные эффекты при вызове функций. Просмотр информации о функциях. Отладка процедур и функций.

12. Создание пакетов

Преимущества использования пакетов. Пакеты PL/SQL. Компоненты пакета. Разработка пакета PL/SQL. Область видимости компонент пакета PL/SQL. Создание спецификации и тела пакета при помощи команд SQL и SQL Developer. Вызов пакетных конструкций. Просмотр исходного кода при помощи представлений словаря данных.

13. Работа с пакетами

Перегрузка пакетных подпрограмм в PL/SQL. Использование пакета STANDARD. Использование предварительного определения для решения проблемы со ссылками на неопределенные процедуры. Ограничения использования пакетных функций в SQL. Постоянное состояние пакетов. Постоянное состояние пакетных переменных и курсоров. Побочные эффекты в подпрограммах PL/SQL. Использование в пакетах таблиц типа данных RECORD.

15. Динамический SQL

Этапы выполнения команды SQL. Что такое динамический SQL? Определение переменных в курсоре. Динамическое выполнение блока PL/SQL. Использование родного динамического SQL (NDS) для компиляции кода PL/SQL. Вызов пакета DBMS_SQL. DBMS_SQL и параметризованный DML. Функциональная полнота динамического SQL.

16. Рекомендации по дизайну кода PL/SQL

Стандартизация констант и исключений. Использование локальных подпрограмм в коде PL/SQL. Автономные транзакции. Использование подсказки компилятору NOCOPY для передачи параметра по ссылке. Применение подсказки компилятору PARALLEL_ENABLE для оптимизации кода. Кэш результатов функций PL/SQL. Фраза DETERMINISTIC для функций. Использование пакетного связывания для улучшения производительности.

17. Создание триггеров базы данных

Описание различных видов триггеров. Сценарии использования триггеров. Создание триггеров при помощи команды CREATE TRIGGER и SQL Developer. Типы событий триггера и срабатывание триггера. Различия между триггером уровня команды и строчным триггером. Создание замещающих (INSTEAD OF) и отключенных триггеров. Управление, тестирование и удаление триггеров.

18. Создание комбинированных (COMPOUND) триггеров, DDL-триггеров и триггеров, срабатывающих по системным событиям базы данных

Работа с комбинированными триггерами. Срабатывание комбинированных триггеров. Структура комбинированных триггеров для таблиц и представлений. Применение комбинированных триггеров для исправления ошибок, связанных с изменяющимися таблицами. Сравнение триггеров, срабатывающих на события базы данных, и хранимых процедур. Создание триггеров, срабатывающих на команды DDL. Создание триггеров, срабатывающих на системные события и события базы данных. Системные привилегии, необходимые для управления триггерами.

19. Использование компилятора PL/SQL

Использование компилятора PL/SQL. Параметры инициализации, влияющие на компиляцию кода PL/SQL. Новые категории предупреждений компилятора. Категории предупреждений компилятора для подпрограмм. Преимущества использования предупреждений компилятора. Категории предупреждений компилятора. Установка уровня предупреждений компилятора при помощи SQL Developer, параметра инициализации PLSQL_WARNINGS и пакета DBMS_WARNING. Просмотр предупреждений компилятора при помощи SQL Developer, SQL*Plus или представлений словаря данных.

20. Сопровождение зависимостей

Обзор зависимостей между объектами. Отслеживание зависимостей между объектами при помощи представления словаря данных USER_DEPENDENCIES. Просмотр статуса объекта. Определение эффекта, оказываемого на процедуры и функции, от изменения объекта базы данных. Отображение локальных и удаленных зависимостей. Упрощенное сопровождение зависимостей в Oracle Database 12c. Локальные и удаленные зависимости. Перекомпиляция программных единиц PL/SQL.