DECLARE

用于创建游标的SQL命令

DECLARE 是用于创建游标的实用命令。

DECLARE 命令一直存在于PostgreSQL中。

用法

DECLARE 创建一个关联了查询的游标。可以使用 FETCHMOVE 命令来检索数据和更新游标在查询中的位置。

DECLARE 必须在一个事务中执行。然而,EXPLAIN DECLARE ... 可以在事务外执行。

如果指定了无效的查询,会引发一个 ERROR

变更历史

DECLARE 在所有PostgreSQL版本中都存在。

示例

DECLARE 的基本用法示例

postgres=# BEGIN;
BEGIN

postgres=*# DECLARE foo_cursor CURSOR
                FOR SELECT * FROM foo;

postgres=*# SELECT * FROM pg_cursors\gx
-[ RECORD 1 ]-+------------------------------
name          | foo_cursor
statement     | DECLARE foo_cursor CURSOR    +
              |     FOR SELECT * FROM foo;
is_holdable   | f
is_binary     | f
is_scrollable | t
creation_time | 2022-10-25 08:23:26.890898+01

游标只能在事务中声明

postgres=# DECLARE foo_cursor CURSOR
               FOR SELECT * FROM foo;
ERROR:  DECLARE CURSOR can only be used in transaction blocks

指定的查询必须有效,并且引用可见的对象

postgres=# DECLARE foo_cursor CURSOR
               FOR SELECT * FROM bar;
ERROR:  relation "bar" does not exist
LINE 2:     FOR SELECT * FROM bar;

分类

游标, SQL 命令

另请参阅

FETCH, MOVE, CLOSE, pg_cursors

反馈

提交关于“DECLARE”的任何评论、建议或更正,请在此处提交