历史版本。 PostgreSQL 7.2 已结束支持。 请参阅 当前版本手册.
大纲
SPI_cursor_open(name,plan,values,nulls)
输入
- char *
name portal 的名称,或为 NULL 以让系统选择名称
- void *
plan 执行计划
- Datum *
values 实际参数值
- char *
nulls 描述哪些参数为 NULL 的数组
n表示 NULL(忽略 values[] 中的对应项)空格表示非 NULL(values[] 中的对应项有效)
输出
- Portal
指向包含该游标的 Portal 的指针,出错时为 NULL
描述
SPI_cursor_open
建立一个游标(在内部是一个 Portal),该游标将执行由
SPI_prepare 准备好的计划。
使用游标而不是直接执行该计划有两个好处。首先,可以一次只取出少量结果行,从而避免对返回大量行的查询耗尽内存。其次,一个 Portal 可以比当前的过程存活更久(实际上,它可以一直存活到当前事务结束)。把 portal 的名称返回给该过程的调用者,就提供了一种把行集作为结果返回的方法。
用法
如果 nulls
为 NULL,则
SPI_cursor_open
假定所有参数(如果有的话)都非 NULL。