Перейти к основному содержимому

CALL

примечание

Эта страница переведена при помощи нейросети GigaChat.

CALL — вызов процедуры.

Синтаксис

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

Описание

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

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

Параметры

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

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

Необходимо указать значения для всех параметров процедуры, не имеющих значений по умолчанию — включая параметры OUT. Однако значения, соответствующие параметрам OUT, не вычисляются, поэтому обычно для них просто указывается NULL. Использование других значений вместо NULL для параметров OUT может привести к проблемам совместимости с будущими версиями PostgreSQL.

Примечания

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

Если нужно вызвать функцию, а не процедуру, следует использовать SELECT.

При выполнении CALL внутри транзакционного блока вызываемая процедура не может выполнять команды управления транзакциями. Такие команды разрешены только если CALL выполняется в отдельной (самостоятельной) транзакции.

Особенности обработки выходных параметров в CALL в PL/pgSQL описаны в разделе «Вызов процедуры».

Примеры

CALL do_db_maintenance();

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

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

Смотрите также

CREATE PROCEDURE