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" 的评论、建议或更正 此处