Если в процедуре нет параметров, не нужно указывать круглые скобки ни в ее объявлении, ни при ее вызове. То же самое справедливо и для функций. Приведем пример:
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 не установлено явного ограничения на число параметров.
< Предыдущая | Следующая > |
---|