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命令

另请参阅

FETCHMOVECLOSEpg_cursors

反馈

提交任何关于"DECLARE" 的评论、建议或更正 此处