DeepEdit!

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

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

Перегруженные функции

Прагма может располагаться в любом месте описания модуля после объявления функции, но относиться она может только к одному определению функции. Поэто­му в случае с перегруженными функциями прагма относится к функции, чье определение предшествует этой прагме и расположено к ней ближе всего. В следующем примере каждая прагма относится к предшествующе­му ей варианту функции TestFunc:

Совет
Лучше указывать прагму RESTRICT_REFERENCES сразу же после каждой функции, чтобы было ясно, к какому варианту она относится.
Встроенные модули 
Процедуры встроенных модулей PL/SQL не являются строгими в том смысле, как это определено в Oracle7.3 и PL/SQL 2.3.
Это относится к модулям DBMS_OUTPUT, DBMS_PIPE, DBMS_ALERT, DBMSSQL и UTL_FILEОднако в последующих версиях в некоторые модули были добавлены необходимые прагмы (см. таблицу 10.3). Поскольку прагма не является обязательной, все функции встроенных модулей, отвечающие поставленным требованиям, можно исполь­зовать в SQL-операторах. Если функция встроенного модуля, вызываемая в Огас1е8г, не отвечает требованиям, на этапе ее выполнения порождается ошибка.

Внимание
Прагмы добавлялись к некоторым из этих модулей в составе корректирующих пакетов ("патчей" или "заплат"), поэтому они могут быть доступны и в версиях более ранних, чем те, что
указаны в таблице 10.3. Для проверки уровня строгости конкретной версии PL/SQL проанализируйте заголовок модуля (обычно находящийся в $ORACLE_HOMEb каталоге
rdbms/admin).

Параметры по умолчанию
При вызове функции из процедурного оператора можно использовать для формальных параметров (при их наличии) значения по умолчанию. Однако при вызове функции из SQL-оператора все параметры должны быть указаны. Кроме того, нужно применять позиционное представле­ние; именное представление недопустимо. Следующий вызов FullName неверный:
 









jAntivirus