# 称呼

CALL — 调用一个过程

# 概要

CALL name ( [ argument ] [, ...] )

# 描述

称呼执行一个过程。

如果该过程有任何输出参数,则将返回一个结果行,其中包含这些参数的值。

# 参数

姓名

过程的名称(可选的模式限定)。

争论

过程调用的参数表达式。

参数可以包含参数名称,使用语法*姓名* => *价值*.这与普通函数调用相同;看第 4.3 节详情。

必须为所有缺少默认值的过程参数提供参数,包括出去参数。但是,参数匹配出去参数不被评估,所以习惯上只写空值为他们。(写点别的东西出去参数可能会导致与未来 PostgreSQL 版本的兼容性问题。)

# 笔记

用户必须有执行过程的特权,以便被允许调用它。

要调用函数(不是过程),请使用选择反而。

如果称呼在事务块中执行,则被调用的过程不能执行事务控制语句。只有在以下情况下才允许使用事务控制语句称呼在自己的事务中执行。

PL/pgSQL 处理输出参数称呼命令不同;看第 43.6.3 节.

# 例子

CALL do_db_maintenance();

# 兼容性

称呼符合 SQL 标准,但输出参数的处理除外。该标准规定用户应该编写变量来接收输出参数的值。

# 也可以看看

创建过程