Введение:
Цель курса. Программа курса. Описание демонстрационной схемы - схемы управления персоналом. Среды разработки PL/SQL, доступные в этом курсе. Введение в SQL Developer.
Работа с облачным сервисом Oracle Cloud Exadata Express:
Введение в Oracle Database Exadata Express Cloud Service. Доступ к облачной базе данных с помощью SQL Workshop. Подключение к Exadata Express с помощью клиентов базы данных.
Введение в PL/SQL Обзор PL/SQL:
Определение преимуществ подпрограмм PL/SQL. Обзор типов блоков PL/SQL. Создание простого анонимного блока. Как генерировать вывод из блока PL / SQL?
Объявление переменных PL/SQL:
Перечисление различных типов идентификаторов в подпрограмме PL/SQL. Использование раздела деклараций для определения идентификаторов. Использование переменных для хранения данных. Определение скалярных типов данных. Атрибут type. Что такое bind-переменные? оследовательности в выражениях на PL/SQL.
Запись анонимных блоков PL / SQL:
Описание основных принципов синтаксиса блоков PL/SQL. Как комментировать код? Развертывание функций SQL в PL/SQL. Как конвертировать типы данных? Опишите вложенных блоков. Определение операторов в PL/SQL.
Операторы SQL в блоке PL/SQL:
Вызов инструкции SELECT в PL/SQL. Получение данных в PL/SQL. Концепция курсора SQL. Избегайте ошибок с помощью соглашений об именовании объектов при использовании инструкций Retrieval и DML. Обработка данных на сервере с помощью PL/SQL. Объяснение концепции курсора SQL. Использование атрибутов курсора SQL для получения обратной связи по DML. Сохранение и удаление транзакций.
Управляющие структуры:
Условная обработка с использованием операторов IF. Условная обработка с использованием операторов CASE. Описание простого оператора цикла. Описание оператора цикла While. Описание оператора цикла. Использование оператора continue.
Составные типы данных:
Использование типа запись в PL/SQL. Атрибут %ROWTYPE. Вставка и обновление записей PL/SQL. Индекс по таблицам. Изучение индексов табличными методами. Использование индекса по таблице записей.
Явные курсоры:
Что такое явные курсоры? Объявление курсора. Открытие курсора. Извлечение данных из курсора. Закрытие курсора. Курсор в цикле. Атрибуты %NOTFOUND и %ROWCOUNT. Описание предложений FOR UPDATE и WHERE CURRENT.
Обработка исключений:
Понимание понятия исключения. Обработка исключений с помощью PL/SQL. Захват предопределенных ошибок сервера Oracle. Захват не предопределенных ошибок Сервера Oracle. Захват пользовательских исключений. Распространение исключений. Процедура RAISE_APPLICATION_ERROR.
Хранимые процедуры:
Создание модульного и многоуровневого дизайна подпрограмм. Модульная разработка с блоками PL/SQL. Понимание среды выполнения PL/SQL. Перечисление преимуществ использования подпрограмм PL/SQL. Перечисление различий между анонимными блоками и подпрограммами. Создание, вызов и удаление хранимых процедур. Создание процедур с параметрами и режимы параметров. Просмотр сведений о процедуре.
Хранимые функции:
Создание, вызов и удаление хранимых функций. Определение преимуществ использования хранимых функций. Определение шагов для создания сохраненной функции. Вызов пользовательских функций в инструкциях SQL. Ограничения при вызове функций. Контроль побочных эффектов при вызове функций. Просмотр информации о функциях.
Отладка подпрограмм:
Как отлаживать функции и процедуры? Отладка через SQL Developer.
Пакеты:
Перечисление преимуществ пакетов. Описание пакетов. Каковы компоненты пакета? Как разработать пакет. Как включить видимость компонентов пакетов? Создание спецификации и тела пакета с помощью инструкции SQL CREATE и SQL Developer. Вызов конструкций пакета. Просмотр исходного кода PL/SQL с помощью словаря данных.
Развертывание пакетов:
Перегрузка подпрограмм в PL/SQL. Использование стандартных пакетов. Использование прямых объявлений для разрешения неразрешенной ссылки на процедуру. Реализация функций пакета в SQL и ограничения. Постоянное состояние пакетов. Постоянное состояние курсора в пакете. Контроль побочных эффектов подпрограмм на PL/SQL. Вызов из PL/SQL таблиц записей в пакетах.
Реализация пакетов Oracle при разработке приложений:
Какие пакеты поставляются Oracle? Примеры некоторых пакетов, поставляемых Oracle. Как работает пакет DBMS_OUTPUT? Использование пакета UTL_FILE для взаимодействия с файлами операционной системы. Вызов пакета UTL_MAIL. Написание своих подпрограммы с использованием UTL_MAIL.
Динамический SQL:
Поток выполнения SQL. Что такое динамический SQL? Как объявить переменную курсора. Динамическое выполнение блока PL/SQL. Настройка собственного динамического SQL для компиляции кода PL/SQL. Как вызвать пакет DBMS_SQL? Реализуйте DBMS_SQL с параметризованным оператором DML. Функциональная полнота динамического SQL.
Рекомендации по разработке кода PL/SQL:
Стандартизация констант и исключений. Понимание локальных подпрограмм. Запись автономных транзакций. Как реализовать hint (подсказку) компилятору nocopy. Вызов подсказки PARALLEL_ENABLE. Кэш результатов функции PL/SQL между сессиями. Детерминированное выполнение операторов языка с вызовом функций. Использование массового связывания для повышения производительности.
Триггеры:
Описание триггеров. Определение типов событий срабатывания триггера и тело триггера. Сценарии бизнес-приложений для реализации триггеров. Создание триггеров DML с помощью инструкции CREATE TRIGGER и SQL Developer. Определите типов событий срабатывания триггера, тело триггера и время срабатывания. Различия между триггерами уровня оператора и триггерами уровня строки.
Создание триггеров Instead of и инструкция Disabled:
Как управлять, тестировать и удалять триггеры? Создание триггеров базы данных типа Compound, DDL и Event Что такое составные триггеры? Определение разделов временной точки составного триггера таблицы. Понимание структуры составного триггера для таблиц и представлений. Реализуйте составной триггер для устранения ошибки мутации данных в таблице. Сравнение триггеров базы данных с хранимыми процедурами. Создание триггеров для операторов DDL. Создание триггеров событий базы данных и системных событий. Системные привилегии, необходимые для управления триггерами.
Компилятор PL/SQL:
Что такое компилятор PL/SQL? Описание параметров инициализации для компиляции PL/SQL. Перечисление новых предупреждений времени компиляции PL/SQL. Обзор предупреждений времени компиляции PL/SQL для подпрограмм. Перечисление преимуществ предупреждений компилятора. Перечисление категорий предупреждений о времени компиляции PL/SQL. Установка уровней предупреждений: с помощью SQL Developer, параметра инициализации PLSQL_WARNINGS и подпрограмм пакета DBMS_WARNING. Просмотр предупреждений компилятора: использование представлений SQL Developer, SQL*Plus или словаря данных.
Управление зависимостями:
Обзор зависимостей объектов схемы. Запрос прямых зависимостей объектов с помощью представления USER_DEPENDENCIES. Запрос состояния объектов. Недействительность зависимых объектов. Отображение прямых и косвенных зависимостей. Управление зависимостями на уровне единичных элементов кода в базе данных Oracle 12c. Понимание того, что такое удаленная зависимость. Перекомпиляция программного модуля PL/SQL.