DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Ключевое слово TRUST

Хотя прагма RESTRICT JtEFERENCES теперь не обязательна (и на практике не может использоваться для внешних подпрограмм), в программах, созданных до        г, применять ее можно. Она позволяет также ускорить обработку данных (см. выше). Таким образом, можно вызвать функ­цию, не имеющую прагмы, из функции, объявленной как строгая. Для этого в Oraclе8 предусмотрено вспомогательное ключевое слово TRUST, задаваемое в прагме в дополнение к уровням строгости или вместо них.
Если ключевое слово TRUST присутствует, ограничения, указанные в прагме, не реализуются и считаются истинными априори. Это позволяет создавать новые программные конструкции, в которых не используется RESTRICT_REFERENCES, и вызывать их из функций, объявленных как строгие. Для примера рассмотрим следующий модуль:
TrustPkg.Tollpper — это внешняя подпрограмма; тело функции написа­но на Java, она возвращает свой входной параметр в символах верхнего регистра. Поскольку тело написано не на PL/SQL, для прагмы необходи­мо ключевое слово TRUST. Затем можно вызывать ToUpper из процедуры Demo, поскольку предполагается, что эта функция обладает уровнем стро­гости WNDS.

Внимание
Хотя TrustPkg можно компилировать, не имея хранимой процедуры Java, выполнить ее невозможно, не создав сначала Test. Uppercase.

Вызов функций из операторов DML
До Огас1е8г функция, вызываемая из оператора DML, не могла обновлять базу данных (т.е. ее уровень строгости должен был задаваться как В Огас1е8г это ограничение смягчено.

Однако в Oracie8i он разрешен, так как UpdateTemp не модифицирует
таблицу students, а лишь temp_table.
Внимание
Функция, вызываемая из распараллеленного оператора DML, не должна модифицировать базу данных, даже если таблицы в тот момент не изменяются.
 









jAntivirus