Сегодня рассмотрим пакет OUTLN_PKG. Дадим его обзор, расскажем из чего он состоит и как этим пользоваться именно с точки зрения программиста, разработчика ПО, девелопера!
Итак, этот пакет создавался для следующих целей:
- Для поддержки множественных операций с шаблонами, таких как удаление неиспользуемых хранимых шаблонов, удаление шаблонов определенной категории и т.д. Это можно сделать и с помощью операторов ALTER и DROP, но только по одному шаблону. Пакет OUTLN_PKG предлагает набор процедур для работы с несколькими шаблонами одним оператором.
- Чтобы предоставить набор процедур для утилит ЕХР и IMP, обеспечивающих экспорт и импорт хранимых шаблонов.
В дальнейших заметках мы опишем и продемонстрируем использование процедур пакета OUTLN_PKG для множественных операций. Мы не будем затрагивать процедуры пакета, предназначенные для поддержки экспорта и импорта. Эти процедуры не описаны в документации и не предназначены для вызова из другой среды,_кроме утилит IMP и ЕХР.
Пакет OUTLN_PKG создается сценариями dbmsol.sql и prvtol.plb, которые находятся в каталоге [ORACLE_HOME]/rdbms/admin. Эти сценарии вызываются сценарием catproc.sql (который находится в том же каталоге) и создают пакет в базе данных по умолчанию. Помимо создания пакета OUTLN_PKG, эти сценарии вставляют необходимые строки в соответствующие таблицы словаря данных, чтобы зарегистрировать его функции для использования утилитами EXP/IMP. Пакет должен устанавливаться пользователем SYS или INTERNAL с помощью утилиты SVRMGRL. Поскольку пакет автоматически устанавливается при обновлении или установке сервера, выполнять сценарий установки вручную не понадобится.
В пакете OUTLN_PKG есть три процедуры, которые нас интересуют:
• DROP_UNUSED. Удаляет все шаблоны, в столбце USED которых находится значение UNUSED. Это хранимые шаблоны, сгенерированные, но ни разу не использовавшиеся для переписывания запроса.
• DROP_BY_CAT. Удаляет все шаблоны указанной категории. Если оказалось, что вся категория хранимых шаблонов больше не нужна, можно удалить их одной командой, а не выполнять оператор DROP OUTLINE для каждого шаблона по очереди.
• UPDATE_BY_CAT. Переименовывает категорию глобально, изменяя все входящие в нее шаблоны.