Этот курс Oracle Database: Program with PL/SQL Ed 2 начинается с введения в PL/SQL, затем позволит вам оценить преимущества PL/SQL как мощного языка программирования. Прослушав лекции и выполнив практические занятия с инструкторами-разработчиками программных продуктов на технологиях Oracle, вы научитесь разрабатывать хранимые процедуры, функции, пакеты и многое другое.

Вы научитесь

Преимущества для изучивших курс

Вы сможете писать в вашем проекте быстрый, надежный, безопасный и простой в управлении код, выполняющихся с максимальной производительностью. Сможете оптимизировать рабочие нагрузки базы данных, снизить затраты на ИТ и повысить качество обслуживания за счет консолидации данных базах данных в облачной инфраструктуре.

Использование Oracle SQL Developer

Для разработки этих программных модулей будет использоваться Oracle SQL Developer. Утилита SQL*Plus представлена в этом курсе в качестве дополнительного инструмента.

Важное замечание: этот курс представляет собой комбинацию из курсов Oracle Database: PL/SQL Fundamentals и Oracle Database: Develop PL / SQL Program Units.

Аудитория

Необходимая предварительная подготовка

Предполагаемые знания и навыки

Цель курса

Программа

Введение

Цель курса. Программа курса. Описание демонстрационной схемы - схемы управления персоналом. Среды разработки 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.