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