pg_cursorsビューは、現在利用可能なカーソルを列挙します。 以下のようにカーソルは複数の方法で定義可能です。
SQLからDECLARE文経由。
項45.2.3で説明する、フロントエンド/バックエンドプロトコルからBindメッセージ経由。
項42.1で説明する、サーバプログラミングインタフェース(SPI)経由。
pg_cursorsビューは、上のいずれかの方法で作成されたカーソルを表示します。 カーソルは、WITH HOLDと宣言されていない限り、それを定義したトランザクション期間しか存在しません。 したがって、保持不可能なカーソルは、作成元トランザクションが終わるまでの間のみ、このビューに現れます。
注意: 手続き言語など、一部のPostgreSQLの要素を実装するために内部的にカーソルが使用されています。 したがって、pg_cursorsにはユーザが明示的に作成していないカーソルも含まれる可能性があります。
表 44-43. pg_cursorsの列
名前 | 型 | 説明 |
---|---|---|
name | text | カーソルの名前 |
statement | text | カーソル宣言の際に投稿された逐語的問い合わせ文字列 |
is_holdable | boolean | 保持可能カーソル(つまりカーソルを宣言したトランザクションがコミットされた後でもアクセス可能なカーソル)であればtrueです。 さもなくばfalseです。 |
is_binary | boolean | カーソルがBINARYで宣言されていたらtrue、さもなくばfalse。 |
is_scrollable | boolean | カーソルがスクロール可能(順序どおり以外の方法に行を取り出すことが可能)であればtrue、さもなくばfalse。 |
creation_time | timestamptz | カーソルが宣言された時間。 |
pg_cursorsビューは読み取りのみ可能です。