CALL#

CALL

CALL

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

Синтаксис

CALL name ( [ argument ] [, ...] )

Описание

CALL выполняет процедуру.

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

Параметры

name

Имя (опционально с указанием схемы) процедуры.

argument

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

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

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

Примечания

Пользователь должен иметь привилегию EXECUTE на процедуру, чтобы быть разрешенным вызывать ее.

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

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

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

Примеры

CALL do_db_maintenance();

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

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

См. также

CREATE PROCEDURE