Хохлов И.Л.
Эксперт в области IT-решений и баз данных. Автор программы Программирование PL/SQL (ORACLE).
Опыт в IT: 20 лет
Опыт обучения: 15 лет
Курс обучения языку PL/SQL, внутреннему языку программирования ORACLE. На основе многолетнего опыта разработки программных продуктов, в том числе информационных систем с одновременных доступом в несколько тысяч человек, на основе значимого опыта работы с большим объемом данных и знаний проектирования и разработки высокоструктурированных баз данных мы создали этот курс. Пошаговое обучение программированию в одной из самых востребованных и мощных СУБД - ORACLE. Обучающийся освоит не только непосредственно язык программирования PL/SQL и научится им пользоваться правильно, избегая ошибок, понимание которых, как правило, приходит с опытом, но и научится использовать бОльшую часть инструментов ORACLE для решения любых задач, обусловленных как требованием современного бизнеса, так и поддержкой legacy-кода.
Тут немного про проверку самостоятельных работ учеников.
Структура PL/SQL. Блок DECLARE, блок выполнения, блок EXCEPTION.
Объявление переменных, типы переменных. Оператор присвоения.
Получение данных из базы данных с помощью SELECT .. INTO. Ветвление программы, конструкции IF..THEN, IF..THEN..ELSE, IF..THEN..ELSIF.
Стандартный пакет DBMS_OUTPUT.
Назначение отладки. Тестовые окна. Пошаговое выполнение программного кода с мониторингом состояния переменных. Поиск ошибок программного кода.
Вложенные программные блоки. Обработка исключительных ситуаций. Обработка NO_DATA_FOUND, TOO_MANY_ROWS, OTHERS. Метки и оператор перехода GOTO. Рекомендации по написанию программного кода и использованию меток.
Создание хранимых функций и их использование в PL/SQL блоках и SQL-запросах. Требования и ограничения на применение функций в SQL-запросах. Рекомендации к оформлению программного кода и именованию параметров и переменных.
Тестирование функций. Рекомендации по использованию команд управления транзакциями (COMMIT и ROLLBACK) в процедурах и функциях при разработке информационных систем. Использование системных пакетов. Стандартный пакет DBMS_RANDOM.
Способы передачи параметров в функции и процедуры. Типы параметров функций и процедур. Значения по умолчанию.
Создание хранимых процедур и их использование. Команда MERGE.
Работа с исключениями, определение типов исключений. Пользовательские исключения. RAISE_APPLICATION_ERROR. Подпрограммы.
Назначение курсоров в ORACLE. Объявление явных курсоров. Открытие явных курсоров. Извлечение результата из явных курсоров. Закрытие явных курсоров.
Декларация курсоров. Организация циклов перебора строк данных через LOOP..END LOOP. Обработка FETCH. Создание инструкций EXIT. Атрибуты курсоров: %FOUND, %NOTFOUND и др.
Работа с заранее не объявленными явными курсорами. Цикл FOR .. IN, LOOP .. END LOOP.
Работа с неявными курсорами в PL/SQL программе. Применение SQL%ROWCOUNT.
Использование стандартных возможностей ORACLE. Пакет UTL_SMTP. Отправка электронных сообщений через SMTP.
Протоколы работы с почтовыми серверами SMTP, POP3, IMAP.
Кодировка данных. BASE64. Пакеты UTL_RAW, UTL_ENCODE.
Понятие и назначение циклов. Типы циклов. Цикл FOR. Цикл WHILE. Команда EXIT и EXIT WHEN.
Назначение триггеров. Примеры использования триггеров. Контроль и логирование действий пользователей. Использование SYS_CONTEXT.
Понятие и назначение транзакций. Работа с транзакциями. Рекомендации использования транзакций. Автономные транзакции.
Понятие и назначение пакетов. Создание собственных пакетов. Общая структура пакетов. Обращение к элементам пакета. Глобальные данные пакета. Переменные пакетов. Создание общих пакетов. Обращение в SQL-запросах к функциям из состава пакетов.
Синтаксис объявления типов для коллекций. Ключевое слово TYPE. Виды коллекций: ассоциативные массивы, VARRAY, NESTED TABLE. Добавление элементов в коллекции. Методы для работы с коллекциями в программе. FIRST, NEXT, LAST, EXTEND, EXISTS, DELETE. Создание собственных типов коллекций. Ключевое слово RECORD.
Создание вложенных таблиц - NESTED TABLE. Заполнение и редактирование вложенных таблиц. Создание функций, возвращающих таблицы данных. PIPELINED (конвейерные) функции. Использование табличных функций. Ключевое слово TABLE.
Быстрое заполнение коллекций с помощью BULK COLLECT. Обработка большого количества данных. Блочная обработка данных BULK COLLECT.. LIMIT. Дополнительные примеры работы с коллекциями. Использование коллекций в качестве параметров хранимых функций и процедур. Использование %TYPE и %ROWTYPE. Компиляция инвалидных объектов.
Назначение и использование планировщика заданий в ORACLE. Создание регулярно повторяющихся задач. Запуск внешних программ. Запуск процедур по расписанию. Просмотр текущих запланированных заданий в расписании и их редактирование/удаление. Сравнение ORACLE SCHEDULER и ORACLE JOB.
Представления и материализованные представления. Мгновенное и отложенное создание материализованных представлений. Автоматическое обновление материализованных представлений по расписанию. Создание материализованных представлений на основе таблиц. Ручное обновление материализованных представлений. Быстрое и полное обновление материализованных представлений. CREATE MATERIALIZED VIEW LOG.
Основные системные представления и их использование. Динамический SQL - EXECUTE IMMEDIATE.
Использование стандартного пакета ORACLE - UTL_FILE для чтения внешних файлов. Экспорт данных во внешние файлы.
XMLType. XMLSequence. XMLTable. Чтение XML структуры. Извлечение данных из XML файлов, представление данных XML как таблицы. SELECT из XML.