Создание и инициализация пакета. Для создания пакета необходи-
мо выполнить два отдельных шага:
1. Создать спецификацию пакета при помощи команды CREATE
PACKAGE. В спецификации пакета объявить все общедоступные про-
граммные объекты.
2. Создать тело пакета при помощи команды CREATE PACKAGE
BODY. В теле пакета объявить и определить программные объекты двух
типов:
1) общедоступные объекты, которые были объявлены в специфика-
ции пакета;
2) закрытые объекты пакета, к которым можно обращаться только из
других объектов пакета, поскольку извне они недоступны.
Пакет хранится в скомпилированном виде (p-код) в словаре данных и
при обращении к некоторому элементу пакета в первый раз конкретизи-
руется (instantiated). Это означает, что пакет загружается в оперативную
память, а затем запускается его р-код; при этом осуществляется инициа-
лизация пакета, при которой под переменные, определенные в пакете,
выделяется память. Модуль всегда хранится в оперативной памяти в од-
ном экземпляре, и у каждого сеанса, который использует данный модуль,
будет собственная копия модульных переменных. Подобный подход га-
рантирует, что два сеанса, выполняющие подпрограммы одного и того
же модуля, будут использовать различные области памяти.