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