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