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, за исключением обработки выходных параметров. Стандарт гласит, что пользователи должны записывать переменные для получения значений выходных параметров.