PostgreSQL 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
和 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
。