Пакеты (Packages)
Пакеты позволяют объединить процедуры и функции в один автономный модуль.
Обычно пакеты состоят из двух компонентов: спецификации (интерфейс) и тела (реализации интерфейса).
Спецификация пакета содержит информацию о пакете, кроме того, в ней перечисляются все имеющиеся в пакете процедуры и функции. Обычно спецификация не содержит кода, код помещается в теле пакета. Процедуры и функции, перечисленные в спецификации доступны для просмотра, а реализация скрыта.
Создание спецификации пакета
CREATE [OR REPLACE] PACKAGE package_name
IS | AS
спецификация пакета
END имя_пакета;
спецификация пакета – список доступных процедур и функций (вместе со всеми переменными, определениями типов и курсорами).
Создание тела пакета
CREATE [OR REPLACE] PACKAGE BODY имя_пакета
IS | AS
тело_пакета
END имя пакета
Вызов процедур и функций в пакете
При вызове входящих в пакет процедур и функций, следует включать в выхов имя пакета.
package_name.stored_procedure([parameters]);
Получение информации о процедурах и функциях из пакета
SELECT ojbect_name, aggregate, parallel
FROM user_procedures
WHERE objectt_name = 'package';
Удаление пакета
DROP PACKAGE package_name;