Oracle Database 19c: PL/SQL Workshop
Oracle Database 19c: PL/SQL Workshop - это полный курс по PL/SQL, включающий введение в программирование и управление кодом на PL/SQL
Oracle Database 19c: PL/SQL Workshop - это полный курс по PL/SQL, включающий введение в программирование и управление кодом на PL/SQL
Обзор курса и учебная среда;
Структура и цели программы обучения;
Подключение к базе данных Oracle 19c;
Инструменты разработки: SQL Developer, SQL*Plus;
Назначение и преимущества PL/SQL;
Структура блока PL/SQL: DECLARE, BEGIN, EXCEPTION, END;
Типы блоков: анонимные, именованные;
Выполнение блоков PL/SQL в SQL Developer;
Скалярные типы данных: VARCHAR2, NUMBER, DATE, BOOLEAN;
Атрибуты %TYPE и %ROWTYPE;
Переменные подстановки и привязки;
Последовательности в выражениях PL/SQL;
Синтаксические правила блоков PL/SQL;
Операторы присваивания и выражения;
Вложенные блоки и области видимости;
Функции DBMS_OUTPUT.PUT_LINE для вывода;
Операторы SELECT INTO для выборки данных;
DML-операции: INSERT, UPDATE, DELETE в PL/SQL;
Управление транзакциями: COMMIT, ROLLBACK, SAVEPOINT;
Неявные курсоры и атрибуты SQL%ROWCOUNT, SQL%FOUND;
Условные операторы: IF-THEN-ELSIF-ELSE, CASE;
Простые и поисковые выражения CASE;
Циклы: LOOP, WHILE, FOR;
Вложенные циклы и метки;
Записи PL/SQL (RECORD);
Коллекции: ассоциативные массивы (INDEX BY);
Вложенные таблицы и VARRAY;
Методы коллекций: COUNT, FIRST, LAST, NEXT;
Объявление, открытие, выборка и закрытие курсора;
Атрибуты курсора: %FOUND, %NOTFOUND, %ROWCOUNT, %ISOPEN;
Цикл FOR для курсоров;
Курсоры с параметрами;
Типы исключений: предопределённые, пользовательские;
Обработка исключений в секции EXCEPTION;
Распространение исключений во вложенных блоках;
Директива RAISE_APPLICATION_ERROR;
Прагма EXCEPTION_INIT;
Различия между анонимными блоками и подпрограммами;
Преимущества хранимых подпрограмм;
Параметры: IN, OUT, IN OUT;
Хранение подпрограмм в словаре данных;
Синтаксис CREATE PROCEDURE;
Параметры процедур и режимы передачи;
Вызов процедур из анонимных блоков и других подпрограмм;
Обработка исключений в процедурах;
Удаление и пересоздание процедур;
Синтаксис CREATE FUNCTION и оператор RETURN;
Вызов функций из SQL-запросов;
Ограничения на функции в SQL;
Различия между процедурами и функциями;
Рекомендации по использованию;
Использование DBMS_OUTPUT для отладки;
Отладчик SQL Developer;
Компиляция с информацией для отладки;
Обработка ошибок компиляции: SHOW ERRORS;
Представления USER_ERRORS и USER_OBJECTS;
Компоненты пакета: спецификация и тело;
Синтаксис CREATE PACKAGE и CREATE PACKAGE BODY;
Публичные и приватные элементы пакета;
Инициализация пакета;
Перегрузка подпрограмм в пакетах;
Вызов элементов пакета;
Персистентное состояние пакетных переменных;
Курсоры пакетного уровня;
Прагма SERIALLY_REUSABLE;
Удаление пакетов;
Пакет DBMS_OUTPUT: вывод информации;
Пакет UTL_FILE: работа с файлами ОС;
Пакет DBMS_SQL: динамические запросы;
Пакет UTL_MAIL: отправка электронной почты;
Обзор других полезных стандартных пакетов;
Оператор EXECUTE IMMEDIATE;
Динамические DML и DDL;
Связываемые переменные в динамическом SQL;
Пакет DBMS_SQL для сложных сценариев;
Защита от SQL-инъекций: DBMS_ASSERT;
Типы триггеров: DML, INSTEAD OF;
Триггеры уровня строки и уровня оператора;
Новые и старые значения: :NEW и :OLD;
Условие WHEN для триггеров;
Порядок срабатывания триггеров;
Составные (compound) триггеры;
Триггеры на DDL-события: CREATE, ALTER, DROP;
Триггеры на события базы данных: LOGON, STARTUP, SERVERERROR;
Применение триггеров для аудита и безопасности;
Стандарты именования переменных и подпрограмм;
Обработка ошибок как стандартная практика;
Использование BULK COLLECT и FORALL для производительности;
Избегание распространённых ошибок;
Рекомендации Oracle по написанию PL/SQL;
Уровни оптимизации компилятора: PLSQL_OPTIMIZE_LEVEL;
Встроенная компиляция: PLSQL_CODE_TYPE;
Предупреждения компилятора: PLSQL_WARNINGS;
Условная компиляция;
Прагма INLINE;
Прямые и косвенные зависимости объектов;
Состояния объектов: VALID и INVALID;
Представление USER_DEPENDENCIES;
Управление инвалидацией и перекомпиляцией;
Пакет UTL_RECOMP для массовой перекомпиляции;