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

# SPI_execute_with_args

## 名前

SPI_execute_with_args -- 行外のパラメータを持つコマンドを実行する

## 概要

    int SPI_execute_with_args(const char *command,
                              int nargs, Oid *argtypes,
                              Datum *values, const char *nulls,
                              bool read_only, long count)

## 説明

`SPI_execute_with_args`は外部から供給されるパラメータへの参照を含むコマンドを実行します。 コマンドテキストはパラメータを`$`n``として参照し、呼び出しはこうしたシンボル毎にデータ型と値を指定します。 `read_only`と`count`は`SPI_execute`と同じ解釈をします。

`SPI_execute`と比較して、このルーチンの主たる利点は、データ値を面倒な引用やエスケープを要せずコマンドに埋め込むことができることで、従ってSQLインジェクション攻撃の危険性を軽減します。

後に`SPI_execute_plan`が続いた`SPI_prepare`でも同様の結果が得られますが、この関数を使用するときには、提供された特定のパラメータ値に対して問い合わせ計画がカスタマイズされます。 １回限りの問い合わせ実行に対しては、この関数を選ぶべきです。 多くの異なったパラメータを持つ同一のコマンドを実行する場合、再計画のコストと独自計画による利益に依存して、どちらか一方の方法がより早くなります。

## 引数

`const char * `command``

  コマンド文字列

`int `nargs``

  （`$1`、`$2`など）入力パラメータの数

`Oid * `argtypes``

  パラメータのデータ型のOIDを含む配列

`Datum * `values``

  実パラメータ値の配列

`const char * `nulls``

  どのパラメータがnullかを記述する配列

  `nulls`が`NULL`であれば、`SPI_execute_with_args`はどのパラメータもnullでないと看做す

`bool `read_only``

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

`long `count``

  処理または返す行の最大数

## Return Value

戻り値は`SPI_execute`と同じです。

成功した場合`SPI_processed`と`SPI_tuptable`は`SPI_execute`と同様に設定されます。

前のページ | ホーム | 次のページ
SPI_exec | 上に戻る | SPI_prepare