CALL
CALL — вызвать процедуру
Синтаксис
CALL имя ( [ аргумент ] [, ...] )
Описание
Команда CALL
вызывает процедуру.
Если процедура имеет какие-либо выходные параметры, то будет возвращена результирующая строка, содержащая значения этих параметров.
Параметры
имя
Имя процедуры (может быть дополнено схемой).
аргумент
Входной аргумент для вызова процедуры.
Аргументы могут включать имена параметров, используя синтаксис имя => значение. Это работает так же, как при вызовах обычной функции; подробную информацию см. в разделе Вызов функции.
Аргументы должны быть предоставлены для всех параметров процедуры, для которых не определены значения по умолчанию, включая параметры OUT (выходные). Однако аргументы, соответствующие параметрам OUT, не вычисляются, поэтому обычно вместо них просто пишут NULL. (Написание в параметре OUT какого-то другого значения чревато проблемами совместимости с будущими версиями QHB.)
Примечания
Чтобы вызывать процедуру, необходимо иметь для нее право EXECUTE.
Чтобы вызвать функцию (а не процедуру), используйте команду SELECT
.
Если CALL
выполняется в блоке транзакции, то вызываемая процедура не может
выполнять команды управления транзакцией. Эти команды допускаются только в том
случае, если CALL
выполняется в собственной транзакции.
PL/pgSQL обрабатывает выходные параметры в командах CALL
по-другому; см.
подраздел Вызов процедуры.
Примеры
CALL do_db_maintenance();
Совместимость
Команда CALL
соответствует стандарту SQL, за исключением обращения с выходными
параметрами. В стандарте говорится, что для получения значений выходных параметров
пользователи должны задавать переменные.