CALL — 调用一个过程
CALLname( [argument] [, ...] )
CALL 执行一个过程。
如果该过程有任何输出参数,则会返回一个结果行,其中包含这些参数的值。
name该过程的名称(可以用模式限定)。
argument该过程调用的一个参数表达式。
参数可以包含参数名,使用的语法是 。其工作方式与普通函数调用中相同;详见 Section 4.3。 name => value
对于所有缺少默认值的过程参数,包括 OUT 参数,都必须提供参数。不过,与 OUT 参数对应的参数不会被求值,因此习惯上只需为它们写上 NULL 即可。(为 OUT 参数写其他内容可能会导致与未来 PostgreSQL 版本的兼容性问题。)
用户必须拥有该过程上的 EXECUTE 特权,才能被允许调用它。
要调用一个函数(而非过程),请改用 SELECT。
如果 CALL 在一个事务块中执行,则被调用的过程不能执行事务控制语句。只有当 CALL 在其自己的事务中执行时,才允许使用事务控制语句。
PL/pgSQL 对 CALL 命令中输出参数的处理方式有所不同;请参见 Section 41.6.3。
CALL do_db_maintenance();
CALL 符合 SQL 标准,但对输出参数的处理除外。标准要求用户应编写变量来接收输出参数的值。