Postgresql 中文操作指南

CALL

CALL — 调用过程

Synopsis

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

Description

CALL 执行过程。

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

Parameters

  • name

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

  • argument

    • 过程调用的参数表达式。

    • 参数可以使用 name ⇒ value 语法包含参数名称。这与普通函数调用中的方式相同;有关详细信息,请参见 Section 4.3

    • 必须为所有缺少默认值的过程参数(包括 OUT 参数)提供参数。但是,与 OUT 参数匹配的参数不会被评估,因此通常只为它们编写 NULL 。(为 OUT 参数编写其他内容可能会导致与未来 PostgreSQL 版本的兼容性问题。)

Notes

用户必须对过程有 EXECUTE 权限,才可以调用该过程。

若要调用函数(而不是过程),请使用 SELECT

如果 CALL 在事务块中执行,那么所调用的过程不能执行事务控制语句。只有当 CALL 在自己的事务中执行时,才允许事务控制语句。

PL/pgSQL 在不同的 CALL 命令中处理输出参数的方式不同;参见 Section 43.6.3

Examples

CALL do_db_maintenance();

Compatibility

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

See Also