===== CLOSE ===== .. container:: refentry :name: SQL-CLOSE .. container:: titlepage .. container:: refnamediv .. rubric:: CLOSE :name: close CLOSE — 关闭一个游标 .. container:: refsynopsisdiv .. rubric:: 大纲 :name: 大纲 .. code:: synopsis CLOSE { name | ALL } .. container:: refsect1 :name: id-1.9.3.50.6 .. rubric:: 描述 :name: 描述 ``CLOSE``\ 释放与一个已打开游标相关 的资源。在游标被关闭后,不允许在其上做后续的操作。当不再 需要使用一个游标时应该关闭它。 当一个事务被\ ``COMMIT``\ 或者 ``ROLLBACK``\ 终止时,每一个非可保持 的已打开游标会被隐式地关闭。当创建一个可保持游标的事务通过 ``ROLLBACK``\ 中止时,该可保持游标会 被隐式地关闭。如果该创建事务成功地提交,可保持游标会保持打 开,直至执行一个显式的\ ``CLOSE``\ 或者 客户端连接断开。 .. container:: refsect1 :name: id-1.9.3.50.7 .. rubric:: 参数 :name: 参数 .. container:: variablelist ``name`` 要关闭的已打开游标的名称。 ``ALL`` 关闭所有 已打开的游标。 .. container:: refsect1 :name: id-1.9.3.50.8 .. rubric:: 注解 :name: 注解 PostgreSQL没有一个显式的 ``OPEN``\ 游标语句,一个游标在被声明时 就被认为是打开的。使用\ `DECLARE `__\ 语句可以声明游标。 通过查询\ `pg_cursors `__\ 系统视图可以看到所有可用的游标。 如果一个游标在一个保存点之后关闭,并且后来回滚到了这个保存点, 那么\ ``CLOSE``\ 不会被回滚,也就是说回滚 后游标仍然保持关闭。 .. container:: refsect1 :name: id-1.9.3.50.9 .. rubric:: 示例 :name: 示例 关闭游标\ ``liahona``\ : .. code:: programlisting CLOSE liahona; .. container:: refsect1 :name: id-1.9.3.50.10 .. rubric:: 兼容性 :name: 兼容性 ``CLOSE``\ 完全服从 SQL 标准。 ``CLOSE ALL``\ 是一种PostgreSQL 扩展。 .. container:: refsect1 :name: id-1.9.3.50.11 .. rubric:: 另见 :name: 另见 `DECLARE `__, `FETCH `__, `MOVE `__