PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

SPI_execute_plan

SPI_execute_plan — 执行由 SPI_prepare 预备的语句

Synopsis

int SPI_execute_plan(SPIPlanPtr plan, Datum * values, const char * nulls,
                     bool read_only, long count)

描述

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_only

true 表示只读执行

long count

要返回的最大行数, 0 表示没有限制

返回值

返回值与 SPI_execute 相同, 另有以下可能的错误(负)结果:

SPI_ERROR_ARGUMENT

如果 plan 为 NULL 或无效, 或 count 小于 0

SPI_ERROR_PARAM

如果 values 为 NULL 且 plan 是带一些参数预备的

成功时, SPI_processed 和 SPI_tuptable 的设置方式与 SPI_execute 相同。