DeepEdit!

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

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

Подпрограммы без параметров

Если в процедуре нет параметров, не нужно указывать круглые скобки ни в ее объявлении, ни при ее вызове. То же самое справедливо и для функ­ций. Приведем пример:

DBMS.OUTPUT.PUT_LINECCalling NoParamsF on '  || TO_CHAR(NoParamsF,   'DD-MON-YYYY'));
END;

Внимание
В синтаксисе CALL, доступном в Oracle8, круглые скобки необязательны.

Позиционное и именное представления
и вызывающего блока
Во всех приведенных выше примерах фактические аргументы были свя­заны с формальными по позициям. В случае объявления процедуры
можно видеть, что фактические параметры связаны с формальными по
позициям: v_Variablel с p.ParameterA, v_Variable2 с p_ParameterB и т.д. Это называется позиционным представлением (positional notation). Позицион­ное представление применяется наиболее часто, и именно оно использу­ется в языках третьего поколения, например в С.
В качестве альтернативы можно вызвать процедуру при помощи имен­ного представления (named notation):
При именном        для каждого аргумента указываются как формальный, так и фактический параметры. Это дает возможность при желании установить собственный порядок аргументов. Например, в следующем блоке вызывается CallMe с теми же аргументами:
Кроме того, при необходимости позиционное и именное представле­ния можно комбинировать в одном вызове. Первые аргументы нужно ука­зывать по позициям, а оставшиеся можно указать по именам. Приведем пример:
Именное представление — это еще одно свойство PL/SQL, которое за­имствовано из языка Ada. Когда же нужно использовать позиционное представление, а когда именное? Ни одно из них не является более эф­фективным, чем другое, поэтому все зависит от программиста и от его стиля программирования. Некоторые из стилистических особенностей этих представлений, а также различия между ними приведены в таблице 9.3.
Тем, кто предпочитает создавать краткие программы, рекомендуем ис­пользовать позиционное представление, не забывая давать фактическим параметрам подходящие имена. Если же процедура принимает большое число аргументов (больше десяти), что встречается довольно редко, то желательно применять именное представление, поскольку при этом м проще установить соответствие между формальными и фактическими параметрами. Именное представление полезно также для процедур с ар­гументами, используемыми по умолчанию (см. ниже).
Совет
Чем больше параметров в процедуре, тем сложнее ее вызовы и тем труднее проверить наличие всех требуемых параметров. Если необходимо передать в процедуру или получить из нее большое число параметров, рекомендуется определить тип записи, полями которой будут эти параметры. Затем можно использовать единственный параметр, имеющий тип записи (заметим, однако, что если вызывающая среда не PL/SQL, то может оказаться невозможным применение записи). В PL/SQL не установлено явного ограничения на число параметров.
 









jAntivirus