День 1.
Модуль 1. Использование однострочных функций в выборках
-
Функции, их виды
-
Преобразование строк
-
Преобразование чисел
-
Операции с временем и датами
-
Учет поясного времени
-
Вопросы локализации
Модуль 2. Функции преобразования и условные выражения
-
Преобразование типов данных
-
Функции преобразования TO_CHAR, TO_NUMBER и TO_DATE
-
Вложенные однострочные функции
-
Функции NVL, NULLIF и COALESCE
-
CASE-выражения
-
Скалярные выражения
Модуль 3. Агрегация данных с использованием групповых функций
-
Групповые функции
-
Группировка GROUP BY
-
Условие HAVING
Модуль 4. Объединение таблиц
-
Объединение таблиц
-
Виды объединений
-
Рефлексивное объединение
Модуль 5. Подзапросы
-
Применение подзапросов
-
Однострочные подзапросы
-
Многострочные подзапросы
-
Многостолбцовые подзапросы
-
Скалярные подзапросы
-
Коррелированные подзапросы
-
Операторы EXISTS и NOT EXISTS
-
Предложение WITH
Модуль 6. Работа с множествами
-
Операторы работы с множествами
-
Объединение нескольких запросов в один
-
Оператор UNION
-
Оператор INTERSECT
-
Оператор MINUS
-
Сортировка результатов при использовании множественных операторов
День 2.
Модуль 1. Манипулирование данными
-
Команды DML
-
Добавление строк командой INSERT
-
Изменение данных командой UPDATE
-
Удаление строк командой DELETE
-
Команды COMMIT и ROLLBACK
-
Что такое согласованность чтения
Модуль 2. Права и контроль доступа пользователя
-
Системные и объектные привилегии
-
Выдача привилегий на таблицы
-
Просмотр привилегий в словаре данных
-
Выдача привилегий роли
-
Различия между привилегиями и ролями
Модуль 3. Выражения DDL для управления объектами БД
-
Схема, объекты схемы
-
Создание, удаление, изменение таблиц
-
Основные типы данных столбцов таблицы
-
Правила целостности данных таблицы
-
Представления
-
Последовательности
-
Индексы
-
Синонимы
Модуль 4. Управление объектами схемы
-
Добавление ограничений
-
Создание индексов, в том числе при помощи команды CREATE TABLE
-
Создание индексов, основанных на функциях
-
Удаление столбцов таблицы и пометка их как неиспользуемые
-
Выполнение операции FLASHBACK
-
Создание и использование внешних таблиц
Модуль 5. Управление объектами при помощи словаря данных
-
Словарь данных
-
Поиск информации о таблицах
-
Информация о столбцах
-
Просмотр информации об ограничениях
-
Проверка информации о последовательностях
-
Добавление комментариев
Модуль 6. Манипулирование большими наборами данных
-
Манипулирование данными с использованием подзапросов
-
Описание особенностей многотабличной команды INSERT
-
Использование различных типов многотабличной команды INSERT
-
Слияние строк при помощи команды MERGE
-
Отслеживание ретроспективных изменений данных
Модуль 7. Регулярные выражения
-
Виды регулярных выражений
-
Использование регулярных выражений
-
Функции для работы с регулярными выражениями
День 3.
Модуль 1. Введение в PL/SQL
-
Сравнение SQL и PL/SQL
-
Предназначение и типы блоков PL/SQL
-
Обзор типов блоков PL/SQL
-
Создание и выполнение простого анонимного блока
-
Генерация вывода из блоков PL/SQL
Модуль 2. Объявление идентификаторов в PL/SQL
-
Различные типы идентификаторов в подпрограммах PL/SQL
-
Использование раздела объявлений для определения идентификаторов
-
Хранение данных в переменных
-
Скалярные типы данных
-
Атрибут %TYPE
-
Связанные (bind) переменные
-
Использование последовательностей в выражениях PL/SQL
Модуль 3. Написание исполняемых операторов
-
Описание основного синтаксиса блоков
-
Комментирование кода
-
Функции SQL в PL/SQL
-
Преобразование типов данных
-
Вложенные блоки
-
Операторы в PL/SQL
Модуль 4. Взаимодействие с сервером базы данных Oracle
-
Включение операторов SELECT в PL/SQL для получения данных
-
Манипулирование данными на сервере при помощи PL/SQL
-
Концепции SQL-курсоров
-
Атрибуты SQL-курсоров для обратной связи с DML-операторами
-
Фиксация и откат транзакций
Модуль 5. Управление потоком выполнения
-
Оператор IF
-
Оператор CASE
-
Цикл LOOP
-
Цикл WHILE
-
Цикл FOR
-
Оператор CONTINUE
Модуль 6. Работа с составными типами данных
-
Использование записей PL/SQL
-
Использование атрибута %ROWTYPE
-
Вставка и обновление при помощи записей PL/SQL
-
Ассоциативные таблицы INDEX BY и методы работы с ними
-
Ассоциативные таблицы INDEX BY с записями
Модуль 7. Использование явных курсоров
-
Управление явным курсором
-
Определение курсора
-
Открытие курсора
-
Выборка данных из активного набора
-
Закрытие курсора
-
Курсорные циклы FOR с подзапросами
-
Атрибуты явного курсора
-
Использование предложений FOR UPDATE и WHERE CURRENT
Модуль 8. Обработка исключений
-
Понимание исключений
-
Обработка исключений в PL/SQL
-
Перехват предопределённых ошибок сервера Oracle
-
Перехват не-предопределённых ошибок сервера Oracle
-
Перехват исключений, определяемых пользователями
-
Распространение исключений
-
Использование процедуры RAISE_APPLICATION_ERROR
Модуль 9. Создание хранимых процедур и функций
-
Представление о хранимых процедурах и функциях
-
Различие между анонимными блоками и подпрограммами
-
Создание автономной процедуры
-
Создание автономной процедуры с параметром IN
-
Создание автономной функции
-
Вызов автономной процедуры и функции
-
Использование параметров в процедурах и различные режимы параметров
-
Просмотр информации о процедурах в представлениях словаря данных
-
Использование пользовательских функции в SQL-выражениях
-
Ограничения на вызов функций из SQL-выражений
-
Контроль побочных эффектов при вызове функций из SQL выражений
-
Просмотр информации о функциях в словаре данных
День 4.
Модуль 1. Пакеты
-
Преимущества использования пакетов
-
Описание пакетов
-
Компоненты пакетов
-
Разработка пакетов
-
Видимость компонентов пакета
-
Создание спецификации и тела пакета при помощи команд SQL и SQLDeveloper
-
Вызов пакетных конструкций
-
Просмотр исходного кода PL/SQL в словаре данных
-
Перегрузка пакетных подпрограмм в PL/SQL
-
Использование пакета STANDARD
-
Использование предварительного объявления для разрешения ссылок на еще не описанные программные единицы
-
Ограничения на использование пакетных функций в SQL
-
Устойчивое состояние пакета
-
Устойчивое состояние пакетного курсора
-
Контроль уровня чистоты хранимых функций PL/SQL
-
Использование типа данных RECORD с таблицами PL/SQL в пакетах
Модуль 2. Динамический SQL
-
Этапы выполнения команды SQL
-
Что такое динамический SQL?
-
Декларация курсорных переменных
-
Динамическое выполнение блока PL/SQL
-
Использование собственного динамического SQL (NDS) для компиляции кода PL/SQL
-
Использование пакета DBMS_SQL с параметризованной командой DML
-
Функциональная завершенность динамического SQL
Модуль 3. Рекомендации по дизайну кода PL/SQL
-
Стандартизация констант и исключений
-
Использование локальных подпрограмм
-
Автономные транзакции
-
Использование подсказки компилятору NOCOPY
-
Применение подсказки компилятору PARALLEL_ENABLE
-
Кэширование результата PL/SQL функций
-
Условие DETERMINISTIC с функциями
-
Связывание для повышения производительности
Модуль 4. Триггеры
-
Определение типа триггера, времени его срабатывания и тела
-
Сценарии бизнес-применения триггеров
-
Создание DML-триггеров при помощи команды CREATE TRIGGER и SQL Developer
-
Определение типа события, на которое срабатывает триггер, тела триггера и времени срабатывания
-
Операторные и строчные триггеры
-
Триггеры типа INSTEAD OF
-
Сопровождение, тестирование и удаление триггеров базы данных
-
Комбинированные триггеры
-
Структура комбинированного триггера для таблиц и представлений
-
Использование комбинированного триггера для чтения из мутирующей таблицы
-
Сравнение триггеров базы данных и хранимых процедур
-
Создание триггеров на DDL команды
-
Триггеры, срабатывающие по событиям в базе данных
-
Системные привилегии, необходимые для сопровождения триггеров
День 5.
Модуль 1. Компилятор PL/SQL
-
Использование компилятора PL/SQL
-
Установка параметров инициализации
-
Категории предупреждений компилятора
-
Использование предупреждений времени компиляции в подпрограммах
-
Преимущества использования предупреждений компилятора
-
Категории предупреждений компилятора
-
Установка уровней предупреждений компилятора
-
Просмотр предупреждений компилятора
Модуль 2. Сопровождение кода PL/SQL
-
Что такое условная компиляция и как она работает?
-
Использование директив выбора.
-
Использование предопределенной и пользовательской директив опроса.
-
Параметр PLSQL_CCFLAGS и директива опроса
-
Применение директив ошибки при условной компиляции
-
Пакет DBMS_DB_VERSION
-
Процедура DBMS_PREPROCESSOR
-
Защита исходного кода в подпрограммах PL/SQL
Модуль 3. Обслуживание зависимостей
-
Обзор зависимостей между объектами
-
Просмотр прямых зависимостей между объектами
-
Определение статуса объектов
-
Недействительность зависимых объектов
-
Просмотр прямых и косвенных зависимостей
-
Детальное управление зависимостями в базе данных Oracle 11g
-
Удаленные зависимости
-
Перекомпиляция программных единиц PL/SQL
Модуль 4. Использование коллекций
-
Обзор коллекций
-
Использование ассоциативных массивов
-
Использование вложенных таблиц
-
Использование массивов переменной длины
-
Написание PL/SQL программ, использующих коллекции
-
Эффективное использование коллекций
Модуль 5. Оптимизация производительности
-
Влияние компилятора
-
Настройка производительности кода PL/SQL
-
Автоматическая вставка кода подпрограмм оптимизатором
-
Идентификация проблем использования памяти и ее настройка
Модуль 6. Увеличение производительности за счет SQL и PL/SQL кэширования
-
Кэширование результатов запроса при помощи Query Result Cache
-
Использование кэширования результирующего набора SQL-запроса
-
Кэширование PL/SQL-функций
Модуль 7. Анализ кода PL/SQL
-
Получение информации о коде
-
Инструмент PL/Scope
-
Пакет DBMS_METADATA
Модуль 8. Профилирование и трассировка кода PL/SQL
-
Трассировка выполнения кода
-
Профилирование программ на PL/SQL
Модуль 9. Защита кода от SQL-внедрений
-
Описание SQL-внедрений
-
Уменьшение зон, уязвимых для SQL-внедрений
-
Использование DBMS_ASSERT
-
Создание неуязвимого для SQL-внедрений кода
-
Проверка кода на возможность SQL-внедрений