В PL/SQL можно устанавливать уровни строгости для автономных функций. Когда функция вызывается из SQL-оператора, проверяется уровень строгости. Если он не удовлетворяет предъявляемым требованиям, возвращается сообщение об ошибке. Однако для модульных функций (до Oracle8i) требуется прагма (указание) RESTRICT_REFERENCES (ограничить ссылки). Она устанавливает уровень строгости для конкретной функции. Синтаксис прагмы:
PRAGMA RESTRICT REFERENCES( имя_подпрограммы_или_модуля, WNDS[,WNPS] [, RNDS] [, RNPS]);
где имя_подпрограммы_или_модуля — имя модуля или модульной подпрограммы (в OraclcS и выше можно применять еще и ключевые слова DEFAULT и TRUST; см. ниже). Уровень WNDS обязателен для всех функций, вызываемых в SQL-операторах, поэтому он обязателен и для прагмы (в Огасlе8 это ограничение смягчено). Уровни строгости можно указывать в любом порядке. Прагма помещается в заголовок модуля вместе с описанием функции. К примеру, в модуле прагма используется дважды:
Внимание
В Oracle8 и выше эта прагма не является обязательной. При необходимости система поддержки PL/SOL может проверить уровень строгости всех функций на этапе их выполнения (см. ниже раздел "Вызов функций из SQL в Oracle").
< Предыдущая | Следующая > |
---|