Описание курса

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

1. Основные понятия
1.1. Место PL/SQL в архитектуре Oracle
1.2. Общая структура программы на PL/SQL

2. Основные типы и структуры данных
2.1. Простые скалярные типы
2.1.1. Числовые типы
2.1.2. Типы для строк
2.1.3. Типы для моментов и интервалов времени
2.1.4. Булев тип
2.2. Типы LOB («большие неструктурированные объекты»)
2.3. Объявление переменных и постоянных
2.4. Составные типы
2.4.1. Записи
2.4.2. Объекты
2.5. Ссылка на типы уже имеющихся данных и собственные подтипы
2.5.1. Ссылка на типы уже имеющихся данных
2.5.2. Пользовательские подтипы

3. Выражения
3.1. Ограничения для выражений в PL/SQL
3.2. Расширения возможностей выражений в PL/SQL

4. Основные управляющие структуры
4.1. Ветвление программы
4.1.1. Предложение IF-THEN
4.1.2. Предложение IF-THEN-ELSE
4.1.3. Предложение IF-THEN-ELSIF
4.1.4. Предложения CASE
4.1.5. Безусловная передача управления
4.2. Циклы
4.2.1. Простой цикл
4.2.2. Цикл WHILE
4.2.3. Счетный цикл (FOR)
4.2.4. Цикл по курсору (FOR)
4.3. Метки в циклах и в блоках

5. Подпрограммы
5.1. Локальные подпрограммы
5.2. Повторение в подпрограммах ранее задействованных имен
5.3. Предваряющие (forward) объявления
5.4. Повторение имен подпрограмм одного уровня (overloading)

6. Взаимодействие с базой данных: статический SQL
6.1. Предложения SQL в качестве операторов PL/SQL
6.2. Использование записей вместо списка скаляров
6.3. Регулирование изменений в БД
6.3.1. Управление транзакциями
6.3.2. Блокировки таблицы
6.3.3. Ожидание освобождения строк таблицы в программе
6.3.4. Автономные транзакции
6.4. Статическое указание запроса при работе с БД через курсор

7. Использование курсоров
7.1. Явные курсоры
7.1.1. Объявление явных курсоров
7.1.2. Открытие явных курсоров
7.1.3. Извлечение результата через явный курсор
7.1.4. Закрытие явного курсора
7.1.5. Отсутствие запрета изменений таблиц при открытом курсоре
7.1.6. Атрибуты для явных курсоров
7.2. Несколько примеров использования циклов и курсоров
7.3. Курсоры с блокировкой строк таблицы
7.3.1. Предложение SELECT … FOR UPDATE
7.3.2. Предосторожности употребления курсоров с блокировкой
7.3.3. Изменение строк, выбираемых курсором
7.4. Неявные курсоры

8. Встроенный динамический SQL
8.1. Операторы встроенного динамического SQL
8.1.1. EXECUTE IMMEDIATE
8.1.2. OPEN … FOR
8.2. Сравнительный пример двух способов работы с динамическим SQL
8.3. Работа с динамическим SELECT посредством ссылки на курсор
8.3.1. Общие сведения
8.3.2. Пример употребления для структуризации программы
8.4. Сравнение статических и динамических курсоров в программировании

9. Обработка исключительных ситуаций
9.1. Объявление исключительных ситуаций
9.2. Примеры обработки
9.3. Порождение исключительных ситуаций
9.4. Зона действия и распространение
9.5. Локальные исключительные ситуации
9.6. Прочие техники обработки особых ситуаций в программе
9.6.1. Использование функций SQLCODE и SQLERRM
9.6.2. Техника обхода исключительных ситуаций

10. Хранимые процедуры и функции
10.1. Общий синтаксис
10.2. Параметры
10.2.1. Тип параметра
10.2.2. Режим использования параметра
10.2.3. Значения по умолчанию
10.2.4. Способы указать фактические значения параметрам
10.2.5. Обращение к параметрам и к локальным переменным в теле подпрограммы
10.3. Рекурсия, взаимные вызовы и повторения имен
10.4. Указания компилятору при создании подпрограмм
10.5. Хранимые подпрограммы и привилегии доступа к объектам в БД
10.5.1. Две логики реализации привилегий доступа к объектам в БД
10.5.2. Особенности передачи привилегий через роли

11. Триггерные процедуры
11.1. Создание триггерной процедуры
11.2. Отключение триггерных процедур
11.3. Особенности триггерных процедур для событий категории DML
11.3.1. Объединенные триггерные процедуры
11.3.2. Управление транзакциями в теле триггерной процедуры
11.3.3. Последовательность срабатывания триггерных процедур
11.3.4. Составные триггерные процедуры
11.3.5. Триггерные процедуры INSTEAD OF для представлений данных (виртуальных таблиц)
11.4. Триггерные процедуры для событий категории DDL
11.5. Триггерные процедуры для событий уровня схемы и БД

12. Пакеты в PL/SQL
12.1. Общая структура пакета
12.2. Обращение к элементам пакета
12.3. Данные пакета
12.4. Рекурсия, взаимные вызовы и повторения имен
12.5. Код начального исполнения в пакете
12.6. Прагма SERIALLY_REUSABLE

13. Редакции именованных программных единиц
13.1. Подготовка схемы для редакций объектов
13.2. Создание редакций процедур
13.3. Создание редакций триггерных процедур
13.4. Перекрестные триггерные процедуры для разных редакций
13.4.1. Подготовка таблиц
13.4.2. Создание перекрестных межредакционных триггерных процедур
13.4.3. Дополнительные замечания по технологии

14. Вызов функций PL/SQL в предложениях SQL
14.1. Требования и ограничения на применение функций пользователей в SQL
14.2. Обращение к функциям в SQL и погоня за эффективностью; версии 12+
14.3. Обращение в SQL к функциям из состава пакетов
14.4. Разрешение конфликта имен столбцов и функций
14.5. Табличные функции в SQL

15. Составные типы данных: коллекции
15.1. Синтаксис объявления типов для коллекций
15.2. Работа с ассоциативными массивами
15.3. Создание вложенной таблицы и массива VARRAY в программе
15.4. Добавление и убирание элементов в коллекциях
15.5. Преобразования коллекций в SQL
15.6. Выражения со вложенными таблицами: множественные операции
15.7. Методы для работы с коллекциями в программе
15.8. Примеры использования коллекций в программе
15.8.1. Пример обращения со встроенными коллекциями
15.8.2. Пример работы с собственной коллекцией
15.8.3. Пример употребления множественных операций
15.9. Привилегии
15.10. Серийное выполнение запросов и связывание значений с массивами
15.10.1. Серийное выполнение однотипных операций: конструкция FORALL
15.10.2. Привязка значений в запросе к массиву: конструкция BULK COLLECT INTO
15.10.3. Полный пример для схемы SCOTT
15.11. Использование коллекций в табличных функциях (потоковой реализации)
15.11.1. Простой пример
15.11.2. Использование для преобразования данных

16. Настройка кода PL/SQL
16.1. Использование типов данных

17. Компиляция программ на PL/SQL
17.1. Параметры СУБД управления компиляцией
17.2. Условная компиляция
17.2.1. Управляющие конструкции условной компиляции
17.2.2. Выражения в директивах условной компиляции
17.2.3. Перекомпиляция
17.3. Таблицы словаря-справочника
17.4. Зависимости подпрограмм и перекомпиляция
17.5. Методы компиляции
17.5.1. Тип кода-результата
17.5.2. Степень оптимизации

18. Отладка программ на PL/SQL
18.1. Системные пакеты в помощь отладке
18.1.1. Пакет DBMS_PROFILER
18.1.2. Пакет DBMS_HPROF
18.1.3. Пакет DBMS_TRACE
18.1.4. Функции пакета DBMS_UTILITY
18.1.5. Пакет DBMS_DEBUG
18.2. Пример построения профиля работы приложения
18.2.1. Средствами пакета DBMS_PROFILER
18.2.2. Средствами пакета DBMS_HPROF
18.3. Готовые системы программирования и отладки для PL/SQL

19. Системные пакеты PL/SQL
19.1. Пакеты STANDARD и DBMS_STANDARD
19.2. Прочие системные пакеты
19.2.1. Запись данных из программы в файл и обратно
19.2.2. Шифрование данных
19.2.3. Плановый запуск заданий в Oracle
19.2.4. Управление динамическим размещением объектов в библиотечном буфере
19.2.5. Манипулирование большими неструктурированными объектами
19.2.6. Обращение к прошлым значениям данных в таблице
19.2.7. Получение метаданных и их использование
19.2.8. Рассылка сообщений из программы на PL/SQL

Дополнительный материал

20. Примеры употребления ссылки на курсор для разделения обработки запроса в программе
20.1. Простой пример разделения открытия курсора и обработки
20.2. Более сложный пример разделения работы

21. Атрибуты триггерных процедур уровня схемы БД и событий в СУБД

Описание курса



Valid CSS!