支持的版本:当前 (17) / 16 / 15 / 14 / 13
开发版本:devel
不支持的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4

SPI_saveplan

SPI_saveplan — 保存预处理语句

概要

SPIPlanPtr SPI_saveplan(SPIPlanPtr plan)

描述

SPI_saveplan 将传递的语句(由 SPI_prepare 预处理)复制到不会被 SPI_finish 或事务管理器释放的内存中,并返回指向复制语句的指针。 这使您能够在当前会话中随后调用 C 函数时重用预处理语句。

参数

SPIPlanPtr plan

要保存的预处理语句

返回值

指向复制语句的指针;如果失败,则为 NULL。 如果发生错误,则会设置 SPI_result,如下所示

SPI_ERROR_ARGUMENT

如果 planNULL 或无效

SPI_ERROR_UNCONNECTED

如果从断开连接的 C 函数调用

注意

最初传入的语句不会被释放,因此您可能希望对其执行 SPI_freeplan,以避免在 SPI_finish 之前发生内存泄漏。

在大多数情况下,SPI_keepplan 比此函数更可取,因为它在很大程度上实现了相同的结果,而无需实际复制预处理语句的数据结构。

提交更正

如果您发现文档中有任何不正确、与您使用特定功能的经验不符或需要进一步澄清的地方,请使用此表单报告文档问题。