CALL
调用一个过程
英文手册覆盖始于 PostgreSQL 6.4. 来源历史与运行验证各自保留独立版本边界。
当前阅读 PG 18·选择有来源记录的版本
- anchor
- SQL-CALL
- file
- sql-call.html
- lang
- en
- name
- CALL
- purpose
- invoke a procedure
- purpose zh
- 未知
- sections same as
- 未知
- slug
- 18
- synopsis html
- CALL <em class="replaceable"><code>name</code></em> ( [ <em class="replaceable"><code>argument</code></em> ] [, ...] )
- synopsis text
- CALL name ( [ argument ] [, ...] )
语法
CALL name ( [ argument ] [, ...] )语法图
从左向右阅读;分支表示选择,旁路表示可选,循环表示重复。点击带下划线的参数可打开对应规则。
版本定义 PG 18
CALL name ( [ argument ] [, ...] )
描述
CALL执行一个过程。
如果该过程有任何输出参数,则会返回一行结果,其中包含这些参数的值。
参数
name过程的名称(可以是模式限定的)。
argument过程调用的参数表达式。
参数中可以包含参数名,使用语法
。这与普通函数调用中的工作方式相同;详见第 4.3 节。name=>value对于所有没有默认值的过程参数,都必须提供参数,包括
OUT参数。不过,与OUT参数匹配的实参不会被求值,因此通常只需写成NULL。(如果为OUT参数写入其他内容,可能会与未来的PostgreSQL版本产生兼容性问题。)
注解
用户必须拥有该过程的EXECUTE权限,才能调用它。
若要调用函数(而不是过程),请改用SELECT。
如果在事务块中执行CALL,则被调用的过程不能执行事务控制语句。只有当CALL作为独立事务执行时,才允许使用事务控制语句。
PL/pgSQL对CALL命令中的输出参数采用不同的处理方式;参见第 41.6.3 节。
示例
CALL do_db_maintenance();
兼容性
CALL符合 SQL 标准,但对输出参数的处理除外。标准规定用户应写变量来接收输出参数的值。
另见
CREATE PROCEDURE比较版本
来源引用
定义来源
center · PostgreSQL 18 · a709ab85
正文语言: zh-Hans · 1b5ca64c