SQL
- Расширения оператора SELECT в Oracle
- ANSI соединения в операторе SELECT
- Рекурсивная форма оператора SELECT в Oracle
- Обработка NULL значений в Oracle
- Функции DECODE, NVL, NVL2 и их использование для обработки NULL значений
Транзакции
- Понятие транзакции. Неявные и явные транзакции.
- Основные свойства транзакций.
- Уровни изолированности транзакций, отличия реализации в Oracle от других СУБД.
- Понятие блокировок. Основные типы блокировок.
- Операторы поддержки транзакций в Oracle (COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION)
Основные понятия PL/SQL
- Основные понятия PL/SQL, типы модулей PL/SQL, взаимодействие с SQL и с ядром Oracle
- Структура блока PL/SQL.
- Безымянные блоки PL/SQL
- Переменные PL/SQL. Описание и инициализация переменных в PL/SQL. Использование атрибутов %TYPE и %ROWTYPE
- Переменные PL/SQL. Область видимости, время жизни переменных.
- Основные типы данных PL/SQL, отличия от типов данных SQL
- Хранимые процедуры PL/SQL, отличия от блоков PL/SQL
- Функции PL/SQL, отличия от процедур PL/SQL
- Пакеты PL/SQL. Заголовок и тело пакета.
- Использование пакетов. Глобальные переменные и типы
- Параметры функций и процедур PL/SQL. Типы параметров, синтаксис описания формальных параметров. Способы привязки фактических параметров к формальным.
- Операторы PL/SQL (присваивание, цикл, условные операторы, оператор безусловного перехода, …)
Исключения PL/SQL
- Исключения PL/SQL. Основные понятия. Способ использования
- Синтаксис обработки исключений в PL/SQL. Операторы перехвата исключений, генерации и повторной генерации исключений.
- Порядок обработки исключений в случае вложенных блоков PL/SQL
- Предопределенные исключения Oracle. Именованные и неименованные исключения. Исключения NO_DATA_FOUND, TOO_MANY_ROWS
- Определенные пользователем исключения.
- Генерация неименованных пользовательских исключений.
- Определение синонимов для неименованных исключений Oracle
Сложные типы данных в PL/SQL
- Оператор описания типов PL/SQL
- Записи в PL/SQL. Варианты использования.
- Массивы в PL/SQL. Типы массивов, сравнение.
- Индексируемые массивы, атрибуты массивов.
- Таблицы PL/SQL, атрибуты таблиц
- Массивы переменной длины, атрибуты массивов
SQL в PL/SQL
- Общие принципы использования операторов SQL в PL/SQL
- Использование оператора SELECT в PL/SQL
- Использование операторов INSERT, UPDATE, DELETE в PL/SQL
- Понятие курсора в Oracle. Способы использования курсоров.
- Атрибуты курсора.
- Операторы работы с курсором
- Выборка записей из курсора с использованием различных типов операторов цикла.
- Неявные курсоры, атрибуты неявных курсоров.
- Курсорные переменные. Сравнение со статическими курсорами. Передача курсорных переменных как параметров в процедуры
Триггеры
- Триггеры PL/SQL. Основные понятия, отличия от других типов модулей PL/SQL
- Типы триггеров. Общая схема активизации триггеров PL/SQL
- Триггеры INSTEAD OFF. Способ использования, преимущества и недостатки.
- Ограничение на использование триггеров. Понятие о мутирующих таблицах
Динамический SQL
- Динамический SQL. Типы динамического SQL. Сравнение со статическим SQL
- Динамический SQL, синтаксис
- Динамический SQL, передача параметров, возврат результатов
- Динамический SQL, выполнение операторов SQL
- Динамический SQL, выполнение блоков PL/SQL
- Динамический SQL. Курсоры.
- Динамический SQL. Блоковая выборка
Управление модулями PL/SQL в Oracle
- Операторы создания, изменения и удаления модулей PL/SQL (общие элементы синтаксиса)
- Понятие о зависимостях объектов в Oracle.
- Операторы компиляции модулей PL/SQL. Состояние объектов в Oracle.
- Активизация и деактивизация триггеров в Oracle.
- Системное view USER_OBJECTS.