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 和
count 的解释与
SPI_execute 中相同。
SPIPlanPtr plan
预备语句(由
SPI_prepare 返回)
Datum * values实际参数值的数组。 长度必须与语句的参数数量相同。
const char * nulls描述哪些参数为空的数组。 长度必须与语句的参数数量相同。
如果
nulls 为
NULL,则
SPI_execute_plan 假定没有参数是
空的。
否则,
nulls
数组的每个条目在相应参数值非空时应为
' ',在相应参数值为空时应为
'n'。
(在后一种情况下,相应
values 条目中的实际值无关紧要。)
注意,
nulls 不是一个文本字符串,只是一个
数组:它不需要
'\0' 终止符。
bool read_onlytrue 表示只读执行
long count
要返回的最大行数,
0 表示没有限制
返回值与
SPI_execute 相同,
另有以下可能的错误(负)结果:
SPI_ERROR_ARGUMENT
如果
plan 为
NULL 或无效,
或
count 小于 0
SPI_ERROR_PARAM
如果
values 为
NULL 且
plan 是带一些参数预备的
成功时,
SPI_processed 和
SPI_tuptable 的设置方式与
SPI_execute 相同。