51.68. pg_cursors

pg_cursors视图列出了当前可用的游标。游标可以通过几种方式定义:

  • 通过 SQL 中的DECLARE语句

  • 通过前端/后端协议中的绑定消息,如Section 52.2.3中所述

  • 通过服务器编程接口(SPI),如Section 46.1中所述

pg_cursors视图显示通过任何这些方式创建的游标。游标仅在定义它们的事务期间存在,除非已将它们声明为WITH HOLD。因此,不可保留的游标仅在视图中存在,直到其创建事务结束为止。

Note

游标在内部用于实现 PostgreSQL 的某些组件,例如过程语言。因此,pg_cursors视图可能包含用户未明确创建的游标。

表 51.69. pg_cursors

NameTypeDescription
nametext游标名称
statementtext逐字查询字符串已提交以声明此游标
is_holdablebooleantrue如果游标是可保留的(也就是说,可以在声明游标的事务已提交之后访问它); false否则
is_binarybooleantrue,如果游标被声明为BINARYfalse否则
is_scrollablebooleantrue如果光标是可滚动的(也就是说,它允许以非 Sequences 方式检索行); false否则
creation_timetimestamptz游标的声明时间

pg_cursors视图是只读的。