CALL
CALL — вызвать процедуру
Синтаксис
CALLимя
( [аргумент
] [, ...] )
Описание
CALL
вызывает процедуру.
Если у процедуры есть выходные параметры, возвращается строка результата, содержащая значения этих параметров.
Параметры
имя
Имя процедуры (возможно, дополненное схемой).
аргумент
Выражение, определяющее аргумент для вызова процедуры.
В аргументе может передаваться имя параметра в записи
. Это работает так же, как и с обычными вызовами функций; за подробностями обратитесь к Разделу 4.3.имя
=>значение
Аргументы должны задаваться для всех параметров процедуры, для которых не определены значения по умолчанию, включая параметры
OUT
. Однако аргументы, соответствующие параметрамOUT
, не вычисляются, поэтому вместо них обычно часто просто пишутNULL
. (Если передавать в параметрахOUT
какие-то другие значения, возможны проблемы совместимости с будущими версиями Postgres Pro.)
Примечания
Чтобы вызывать процедуру, пользователь должен иметь право EXECUTE
для неё.
Для вызова функции (не процедуры) следует использовать SELECT
.
Если CALL
выполняется в блоке транзакции, вызываемая процедура не может выполнять операторы управления транзакциями. Такие операторы допускаются, только если CALL
выполняется в собственной транзакции.
Выходные параметры команд CALL
в PL/pgSQL обрабатываются по-другому; см. Подраздел 45.6.3.
Примеры
CALL do_db_maintenance();
Совместимость
Команда CALL
соответствует стандарту SQL, за исключением особенности обработки выходных параметров. Стандарт говорит, что для получения значений таких параметров нужно указывать переменные.