51.68. pg_cursors
  The
  
   pg_cursors
  
  view lists the cursors that
   are currently available. Cursors can be defined in several ways:
 
- 
    
via the DECLARE statement in SQL
 - 
    
via the Bind message in the frontend/backend protocol, as described in Section 52.2.3
 - 
    
via the Server Programming Interface (SPI), as described in Section 46.1
 
  The
  
   pg_cursors
  
  view displays cursors
   created by any of these means. Cursors only exist for the duration
   of the transaction that defines them, unless they have been
   declared
  
   WITH HOLD
  
  . Therefore non-holdable
   cursors are only present in the view until the end of their
   creating transaction.
 
Note
   Cursors are used internally to implement some of the components
     of
   
    PostgreSQL
   
   , such as procedural languages.
     Therefore, the
   
    pg_cursors
   
   view might include cursors
     that have not been explicitly created by the user.
  
   
    Table 51.69. 
    
     pg_cursors
    
    Columns
   
  
| Name | Type | Description | 
|---|---|---|
       
        name
       
       | 
      
       
        text
       
       | 
      The name of the cursor | 
       
        statement
       
       | 
      
       
        text
       
       | 
      The verbatim query string submitted to declare this cursor | 
       
        is_holdable
       
       | 
      
       
        boolean
       
       | 
      
       
        true
       
       if the cursor is holdable (that is, it
       can be accessed after the transaction that declared the cursor
       has committed);
       
        false
       
       otherwise
       | 
     
       
        is_binary
       
       | 
      
       
        boolean
       
       | 
      
       
        true
       
       if the cursor was declared
       
        BINARY
       
       ;
       
        false
       
       otherwise
       | 
     
       
        is_scrollable
       
       | 
      
       
        boolean
       
       | 
      
       
        true
       
       if the cursor is scrollable (that is, it
       allows rows to be retrieved in a nonsequential manner);
       
        false
       
       otherwise
       | 
     
       
        creation_time
       
       | 
      
       
        timestamptz
       
       | 
      The time at which the cursor was declared | 
  The
  
   pg_cursors
  
  view is read only.