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