历史版本。 PostgreSQL 8.3 已结束支持。 请参阅 当前版本手册.
SPI_execute_plan
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 中相同。
参数
SPIPlanPtrplan执行计划(由
SPI_prepare返回)Datum *values一个实际参数值的数组。必须与该计划的参数个数等长。
const char *nulls一个描述哪些参数为空值的数组。必须与该计划的参数个数等长。
n表示空值(values中的对应项会被忽略);空格表示非空值(values中的对应项有效)。如果
nulls为NULL,则SPI_execute_plan假定没有参数为空值。boolread_onlytrue表示只读执行longcount要处理或返回的最大行数
返回值
返回值和SPI_execute相同,还有下列额外可能的错误(负值)结果:
SPI_ERROR_ARGUMENT如果
plan为NULL或者非法,或者count小于 0SPI_ERROR_PARAM如果
values为NULL,但plan在准备时带有参数
成功时,SPI_processed 和
SPI_tuptable 的设置方式与
SPI_execute 相同。
注解
如果预备计划所引用的对象(表、函数等)在会话期间被删除,那么对该计划执行 SPI_execute_plan 的结果将是不可预知的。