==== CALL ==== .. container:: refentry :name: SQL-CALL .. container:: titlepage .. container:: refnamediv .. rubric:: CALL :name: call CALL — 调用一个过程 .. container:: refsynopsisdiv .. rubric:: 大纲 :name: 大纲 .. code:: synopsis CALL name ( [ argument ] [, ...] ) .. container:: refsect1 :name: id-1.9.3.48.5 .. rubric:: 简介 :name: 简介 ``CALL``\ 执行一个过程。 如果过程有任何输出参数,则会返回一个结果行,返回这些参数的值。 .. container:: refsect1 :name: id-1.9.3.48.6 .. rubric:: 参数 :name: 参数 .. container:: variablelist *``name``* 过程的名称(可以被方案限定)。 *``argument``* 过程调用的一个输入参数。函数和过程调用语法的完整细节(包括参数的使用)请参考\ `第 4.3 节 `__\ 。 .. container:: refsect1 :name: id-1.9.3.48.7 .. rubric:: 注解 :name: 注解 用户必须有过程上的\ ``EXECUTE``\ 特权才能调用它。 要调用一个函数(不是过程),应使用\ ``SELECT``\ 。 如果在事务块中执行\ ``CALL``\ ,那么被调用的过程不能执行事务控制语句。只有当\ ``CALL``\ 在其自身的事务中执行时,才允许过程执行事务控制语句。 PL/pgSQL 以不同的方式处理\ ``CALL``\ 中的输出参数。 .. container:: refsect1 :name: id-1.9.3.48.8 .. rubric:: 示例 :name: 示例 .. code:: programlisting CALL do_db_maintenance(); .. container:: refsect1 :name: id-1.9.3.48.9 .. rubric:: 兼容性 :name: 兼容性 ``CALL``\ 符合SQL标准。 .. container:: refsect1 :name: id-1.9.3.48.10 .. rubric:: 另见 :name: 另见 `CREATE PROCEDURE `__