CALL

CALL — вызвать процедуру


Синтаксис

CALL имя ( [ аргумент ] [, ...] )

Описание

Команда CALL вызывает процедуру.

Если процедура имеет какие-либо выходные параметры, то будет возвращена результирующая строка, содержащая значения этих параметров.


Параметры

имя

Имя процедуры (может быть дополнено схемой).

аргумент

Входной аргумент для вызова процедуры.

Аргументы могут включать имена параметров, используя синтаксис имя => значение. Это работает так же, как при вызовах обычной функции; подробную информацию см. в разделе Вызов функции.

Аргументы должны быть предоставлены для всех параметров процедуры, для которых не определены значения по умолчанию, включая параметры OUT (выходные). Однако аргументы, соответствующие параметрам OUT, не вычисляются, поэтому обычно вместо них просто пишут NULL. (Написание в параметре OUT какого-то другого значения чревато проблемами совместимости с будущими версиями QHB.)


Примечания

Чтобы вызывать процедуру, необходимо иметь для нее право EXECUTE.

Чтобы вызвать функцию (а не процедуру), используйте команду SELECT.

Если CALL выполняется в блоке транзакции, то вызываемая процедура не может выполнять команды управления транзакцией. Эти команды допускаются только в том случае, если CALL выполняется в собственной транзакции.

PL/pgSQL обрабатывает выходные параметры в командах CALL по-другому; см. подраздел Вызов процедуры.


Примеры

CALL do_db_maintenance();

Совместимость

Команда CALL соответствует стандарту SQL, за исключением обращения с выходными параметрами. В стандарте говорится, что для получения значений выходных параметров пользователи должны задавать переменные.


См. также

CREATE PROCEDURE