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