支援的版本:目前 (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

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 中,因此可以在游標仍然存在時釋放它。

此函數現在已被棄用,取而代之的是 SPI_cursor_parse_open,它使用更現代的 API 來處理查詢參數,並提供等效的功能。

引數

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 回報。

提交更正

如果您在文件中發現任何不正確的地方,與您使用特定功能的經驗不符或需要進一步澄清,請使用此表單回報文件問題。