SPI_cursor_open_with_args — 使用查詢和參數設定游標
Portal SPI_cursor_open_with_args(const char *name
, const char *command
, intnargs
, Oid *argtypes
, Datum *values
, const char *nulls
, boolread_only
, intcursorOptions
)
SPI_cursor_open_with_args
設定一個將執行指定查詢的游標(在內部,是一個 portal)。 大部分參數的含義與 SPI_prepare_cursor
和 SPI_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
的陣列,描述哪些參數為空
如果 nulls
是 NULL
,則 SPI_cursor_open_with_args
假設沒有參數為空。 否則,nulls
陣列的每個條目都應該是 ' '
,如果對應的參數值為非空,如果是空的,則為 'n'
。(在後一種情況下,對應 values
條目中的實際值無關緊要。) 請注意,nulls
不是文字字串,只是一個陣列:它不需要 '\0'
終止符。
bool read_only
對於唯讀執行,true
int cursorOptions
游標選項的整數位元遮罩;零產生預設行為
指向包含游標的 portal 的指標。 請注意,沒有錯誤傳回慣例;任何錯誤都將透過 elog
回報。
如果您在文件中發現任何不正確的地方,與您使用特定功能的經驗不符或需要進一步澄清,請使用此表單回報文件問題。