50.61. pg_cursors
В представлении pg_cursors перечисляются курсоры, доступные в данный момент. Курсоры могут быть созданы несколькими способами: 
- через оператор DECLARE в SQL 
- через сообщение Bind в клиент-серверном протоколе, как описано в Подразделе 51.2.3 
- через интерфейс программирования сервера (SPI, Server Programming Interface), как описано в Разделе 45.1 
 В представлении pg_cursors показываются курсоры, полученные любым способом. Курсор существует только на протяжении транзакции, в которой он определён, если только он не был объявлен с указанием WITH HOLD. Поэтому не удерживаемые курсоры показываются в этом представлении только пока не завершится создавшая их транзакция. 
Примечание
Курсоры используются внутри системы для реализации некоторых компонентов Postgres Pro, таких как процедурные языки. Таким образом, в представлении pg_cursors могут быть курсоры, которые пользователи не создавали явно.
Таблица 50.62. Столбцы pg_cursors
| Имя | Тип | Описание | 
|---|---|---|
| name | text | Имя курсора | 
| statement | text | Дословная строка запроса, создавшего данный курсор | 
| is_holdable | boolean | True, если курсор удерживаемый (то есть, к нему можно обращаться после того, как будет зафиксирована транзакция, в которой он объявлен); в противном случае —false | 
| is_binary | boolean | True, если курсор был объявлен с указаниемBINARY; в противном случае —false | 
| is_scrollable | boolean | True, если курсор прокручиваемый (то есть, позволяет получать строки непоследовательным образом); в противном случае —false | 
| creation_time | timestamptz | Время, в которое был объявлен курсор | 
Представление pg_cursors доступно только для чтения.