SPI_execute_plan — 执行一个由SPI_prepare
预备好的语句
int SPI_execute_plan(SPIPlanPtrplan
, Datum *values
, const char *nulls
, boolread_only
, longcount
)
SPI_execute_plan
执行一个由
SPI_prepare
或其同类方法准备好的语句。
read_only
和 and
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_execute
中会设置
SPI_processed
和
SPI_tuptable
。