PostgreSQL 9.4.4 中文手册
上一页 | 上一级 |  | 下一页

# SPI_execute_plan

## 名称

SPI_execute_plan -- 执行一个`SPI_prepare`准备的语句

## 大纲

    int SPI_execute_plan(SPIPlanPtr plan, Datum * values, const char * nulls,
                         bool read_only, long count)

## 描述

`SPI_execute_plan`执行一个`SPI_prepare` 或它的兄弟节点之一准备的语句。`read_only`和 `count`的含义和`SPI_execute`里面的相同。

## 参数

`SPIPlanPtr `plan``

  预备语句（`SPI_prepare`返回的）

`Datum * `values``

  一个实际的参数值的数组。必须和语句的参数个数相同。

`const char * `nulls``

  一个描述哪个参数是空的数组。必须和语句的参数个数相同。

  如果`nulls`是`NULL`，那么`SPI_execute_plan` 假设没有参数为空。否则，如果对应的参数值是非空的，那么`nulls` 数组的每一项都应该是`' '`，或者如果对应的参数值为空，那么 `nulls`数组的每一项都是`'n'`。 （在后面这种情况下，对应的`values`项中的实际值无关紧要。） 请注意，`nulls`不是文本字符串，只是一个数组： 它不需要`'\0'`终止符。

`bool `read_only``

  `true`用于只读的执行

`long `count``

  返回的最大行数，或者没有限制时为`0`

## 返回值

返回值和`SPI_execute`的一样，另外还有下面几个可能的错误(负值)结果：

`SPI_ERROR_ARGUMENT`

  如果`plan`是`NULL`或者无效， 或者`count`小于 0

`SPI_ERROR_PARAM`

  如果`values`是`NULL`并且 `plan`准备了一些参数

成功时，`SPI_processed`和`SPI_tuptable` 的设置和`SPI_execute`里一样。

上一页 | 起始页 | 下一页
SPI_is_cursor_plan | 上一级 | SPI_execute_plan_with_paramlist