# SPI_光标_打开_和_参数

SPI_光标_打开_和_args — 使用查询和参数设置游标

# 概要

Portal SPI_cursor_open_with_args(const char *name,
                                 const char *command,
                                 int nargs, Oid *argtypes,
                                 Datum *values, const char *nulls,
                                 bool read_only, int cursorOptions)

# 描述

SPI_cursor_open_with_args设置将执行指定查询的游标(内部为门户)。大部分参数与对应的参数含义相同SPI_prepare_cursorSPI_cursor_open.

对于一次性查询执行,此功能应优先于SPI_prepare_cursor其次是SPI_cursor_open.如果要使用许多不同的参数执行相同的命令,则任何一种方法都可能更快,这取决于重新计划的成本与自定义计划的好处。

传入的参数数据将被复制到游标的门户中,因此可以在游标仍然存在时将其释放。

现在不推荐使用此功能,取而代之的是SPI_cursor_parse_open,它使用更现代的 API 来处理查询参数提供等效功能。

# 论据

常量字符 * *姓名*

门户名称,或空值让系统选择一个名字

常量字符 * *命令*

命令字符串

整数 *纳尔格斯*

输入参数的数量(1美元,2美元, 等等。)

好* *参数类型*

长度数组*纳尔格斯*, 包含参数数据类型的 OID

基准 * *价值观*

长度数组*纳尔格斯*,包含实际参数值

常量字符 * *空值*

长度数组*纳尔格斯*,描述哪些参数为空

如果*空值空值然后SPI_cursor_open_with_args假定没有参数为空。否则,每个条目空值数组应该是' '如果相应的参数值不为空,或者'n'如果对应的参数值为空。(在后一种情况下,对应的实际值价值观输入无关紧要。)请注意空值*不是文本字符串,只是一个数组:它不需要'\0'终结者。

布尔 *只读*

真的用于只读执行

整数 *光标选项*

光标选项的整数位掩码;零产生默认行为

# 返回值

指向包含光标的门户的指针。注意没有错误返回约定;任何错误都会通过elog.