Объявление пакета в SQL, понятие уровней строгости

1. Понятие пакета
В СУБД Oracle, начиная с 7 версии, предусмотрена возможность создания пакетов, представляющих по существу коллекцию функций, процедур, констант, пользовательских типов данных, переменных, курсоров, исключительных ситуаций. Пакет включает спецификацию пакета и его тело. Объекты, объявленные в спецификации, являются общедоступными. Тело пакета включает реализацию общедоступных объектов, а также объявление и реализацию приватных объектов. Пакет можно сделать невыгружаемым из памяти. Помещая в пакет наиболее часто используемые процедуры и функции, можно существенно повысить быстродействие системы.

2. Объявление пакета

CREATE PACKAGE <имя пакета> {IS|AS}
<объявление общедоступных объектов>
END <имя пакета>

3. Создание тела пакета

CREATE PACKAGE BODY <имя пакета> {IS|AS} <реализации функций | процедур | курсоров>
BEGIN
<операторы инициализации>
END <имя пакета>

4. Понятие уровней строгости
Для каждой хранимой функции, объявленной в пакете, необходимо сразу после объявления указать уровень строгости (или чистоты) с помощью функции PRAGMA RESTRICT_REFERENCES в спецификации пакета. Указание уровня строгости для функции производится так:

PRAGMA RESTRICT_REFERENCES(<имя функции>, WNPS[, RNDS,…])

Примечание:
PRAGMA – директива компилятору.
RESTRICT_REFERENCES – один из видов прагмы, обеспечивающая уровень чистоты или строгости функции.

5. Уровни строгости функций
WNPS – функция не изменяет состояния пакета записью глобальных переменных, однако может сохранять значения в локальных переменных.
RNPS – функция не читает глобальные переменные в пакете, но может читать из локальных переменных.
WNDS – функция не изменяет данные, хранящиеся в БД.
RNDS – функция не читает данные в БД.


Оставить комментарий





Статистика

Рейтинг@Mail.ru