选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.6 已于 2021 年 11 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

SPI_cursor_open_with_args

SPI_cursor_open_with_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建立一个将 执行指定查询的游标(在内部是一个 portal)。大部分参数具有和 SPI_prepare_cursorSPI_cursor_open中相应参数相同的含 义。

对于一次性查询执行,应优先使用此函数,而不是先调用 SPI_prepare_cursor 再调用 SPI_cursor_open。如果同一条命令要用许多不同参数执行, 哪种方法更快取决于重新规划的代价与定制计划收益之间的权衡。

传入的参数数据会被复制到该游标的 portal 中,因此即使该游标仍然存在, 也可以释放这些参数数据。

参数

const char * name

portal 的名称,或为NULL以让系统选择名称

const char * command

命令字符串

int nargs

输入参数的数量($1$2 等)

Oid * argtypes

一个长度为 nargs 的数组,包含参数数据类型的 OID

Datum * values

一个长度为 nargs 的数组,包含实际参数值

const char * nulls

一个长度为 nargs 的数组,用于描述哪些参数为 空值

如果 nullsNULL,则 SPI_cursor_open_with_args 会假定没有参数为空值。 否则,如果对应参数值非空值,则 nulls 数组中 的对应项应为 ' ';如果对应参数值为空值,则 对应项应为 'n'。(后一种情况下,对应 values 项中的实际值无关紧要。)注意, nulls 不是文本字符串,而只是一个数组,因此不 需要 '\0' 终止符。

bool read_only

true 表示只读执行

int cursorOptions

整数形式的游标选项位掩码,零会导致默认行为

返回值

指向包含该游标的 portal 的指针。注意这里没有错误返回约定, 任何错误都将通过elog报告。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。