PostgreSQL 9.1.1文書
前のページ | 巻戻し |  | 早送り | 次のページ

# SPI_cursor_open

## 名前

SPI_cursor_open -- `SPI_prepare`で作成された計画を使用したカーソルを設定する

## 概要

    Portal SPI_cursor_open(const char * name, SPIPlanPtr plan,
                           Datum * values, const char * nulls,
                           bool read_only)

## 説明

`SPI_cursor_open`は、`SPI_prepare`によって準備された計画を実行するカーソル（内部的にはポータル）を設定します。 このパラメータは`SPI_execute_plan`の対応するパラメータと同じ意味を持ちます。

計画を直接実行するのではなくカーソルを使用することには2つの利点があります。 1つ目は、結果行を一度に少なく取り出し、多くの行を返す問い合わせでのメモリの過使用を防ぐことができる点です。 2つ目は、ポータルは現在のプロシージャの外部でも有効である点です（実際、現在のトランザクションの終端まで有効とすることができます）。 プロシージャの呼び出し元にポータルの名前を返すことで、結果として行セットを返す手段を提供します。

渡されるパラメータデータはカーソルのポータルにコピーされます。 そのため、カーソルが存在している間にそのデータを解放することができます。

## 引数

`const char * `name``

  ポータルの名前、あるいはシステムに名前を決定させる場合は`NULL`

`SPIPlanPtr `plan``

  （`SPI_prepare`で返される）実行計画

`Datum * `values``

  実パラメータ値の配列。 計画の引数の数と同じ長さでなければなりません。

`const char * `nulls``

  どのパラメータがNULLであるかを示す配列。 計画の引数の数と同じ長さでなければなりません。 `n`はNULL値を表します（`values`内の項目は無視されます）。 空白は非NULLの値を表します（`values`内の項目は有効です）。

  `nulls`が`NULL`の場合、`SPI_curcor_open`は全てのパラメータがNULLではないとみなします。

`bool `read_only``

  読み取りのみの実行の場合`true`

## 戻り値

カーソルを含むポータルへのポインタ。 戻り値の規約にはエラーを表すものがないことに注意してください。 エラーはすべて`elog`経由で報告されます。

前のページ | ホーム | 次のページ
SPI_execp | 上に戻る | SPI_cursor_open_with_args