Skip to content

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_onlycount*的解释与SPI_execute中相同。

参数

SPIPlanPtr plan

准备好的语句(由 SPI_prepare 返回)

Datum * values

实际参数值数组。必须与语句的参数数量相同。

const char * nulls

描述哪些参数为 null 的数组。必须与语句的参数数量相同。

如果 nullsNULL,则 SPI_execute_plan 假定没有参数为 null。否则,如果相应参数值不为 null,则 nulls 数组的每个条目应为 ' ';如果相应参数值为 null,则应为 'n'。(在后一种情况下,相应 values 条目中的实际值无关紧要。)请注意,nulls 不是文本字符串,而只是一个数组:它不需要 '\0' 终止符。

bool read_only

对于只读执行为 true

long count

要返回的最大行数,或对于无限制为 0

返回值

返回值与SPI_execute相同,并带有以下可能的附加错误(负数)结果

SPI_ERROR_ARGUMENT

如果 planNULL 或无效,或 count 小于 0

SPI_ERROR_PARAM

如果 valuesNULL,并且 plan 是使用某些参数准备的

如果成功,则SPI_processedSPI_tuptable会像在SPI_execute中一样设置。