В курсе изучаются современные возможности PL/SQL по разработке и отладке PL/SQL-программ, наиболее эффективно взаимодействующих с базой данных и другими приложениями. Слушатели научатся использовать все функциональные возможности курсоров, пакетов, больших объектов, коллекций и методов взаимодействия с другими приложениями. Рассматриваются вопросы написания оптимального кода, использования внешних подпрограмм, написанных на языках C и Java, применения механизма детального контроля доступа, а также защиты кода от SQL-внедрений.

Цели:

Аудитория:

Необходимая предварительная подготовка:

Программа

Введение

Задачи курса. Расписание курса. Описание сред разработки. Таблицы, данные и инструменты, используемые в этом курсе.

Обзор концепций программирования на PL/SQL

Структура блока PL/SQL. Пакеты, процедуры и функции. Курсоры. Обработка исключений. Зависимости.

Дизайн кода PL/SQL

Описание предопределённых типов данных. Создание подтипов на основе имеющихся в приложении типов. Использование разных подходов при дизайне курсоров. Использование переменных курсоров. Белый список.

Обзор коллекций

Обзор коллекций. Использование ассоциативных массивов. Навигация при помощи ассоциативных методов. Использование вложенных таблиц. Использование массивов переменной длины. Сравнение вложенных таблиц и массивов переменной длины.

Использование коллекций

Написание PL/SQL программ, использующих коллекции. Эффективное использование коллекций. Улучшения в типах переменных привязки в PL/SQL.

Манипулирование большими объектами

Работа с LOB. Обзор SecureFile LOB.

Использование продвинутых методов интерфейсов

Вызов внешних программ из PL/SQL. Преимущества вызова внешних процедур. Вызов внешних процедур, написанных на других языках программирования. Вызов из PL/SQL процедур, написанных на языке C. Вызов из PL/SQL процедур, написанных на языке Java.

Настройка производительности кода PL/SQL

Влияние компилятора. Настройка кода PL/SQL. Управление автоматическим встраиванием подпрограмм. Идентификация проблем использования памяти и ее настройка. Сетевые проблемы.

Увеличение производительности за счет кэширования

Описание кэширования результатов. Использование кэша результатов запросов. Использование кэша функций PL/SQL. Обзор особенностей кэша функций PL/SQL.

Анализ кода PL/SQL

Информация о коде. Области видимости PL/SQL. Пакет DBMS_METADATA. Улучшения PL/SQL.

Профилирование и трассировка кода PL/SQL

Трассировка выполнения PL/SQL. Шаги трассировки PL/SQL.

Внедрение виртуальной частной базы данных при помощи детального контроля доступа

Описание работы детального контроля доступа. Описание методов детального контроля доступа. Описание контекста приложения. Создание контекста приложения. Применение контекста приложения. Процедуры пакета DBMS_RLS. Применение политики. Представления словаря данных, содержащие информацию о детальном контроле доступа.

Защита кода от SQL-внедрений

Описание SQL-внедрений. Уменьшение зон, уязвимых для SQL-внедрений. Использование DBMS_ASSERT.