W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
SPI_modifytuple — 通過替換一個給定行的選定域來創(chuàng)建一行
HeapTuple SPI_modifytuple(Relation rel
, HeapTuple row
, int ncols
,
int * colnum
, Datum * values
, const char * nulls
)
SPI_modifytuple
創(chuàng)建一個新行,其中選定的列 用新值替代,其他列則從輸入行中拷貝。輸入行本身不被修改。新行被返回在上層的執(zhí)行器上下文中。
這個函數(shù)只能在連接到SPI時使用。否則,它會返回NULL并且把SPI_result
設(shè)置為SPI_ERROR_UNCONNECTED
。
Relation rel
只被用作該行的行描述符的來源(傳遞一個關(guān)系而不是 一個行描述符是一種令人頭痛的設(shè)計)。
HeapTuple row
要被修改的行
int ncols
要被修改的列數(shù)
int * colnum
一個長度為ncols
的數(shù)組,包含了要被修改的列號 (列號從 1 開始)
Datum * values
一個長度為ncols
的數(shù)組,包含了指定列的新值
const char * nulls
一個長度為ncols
的數(shù)組,描述哪些新值為空值
如果nulls
為NULL
,那么 SPI_modifytuple
假定沒有新值為空值。否則, 如果對應(yīng)的新值為非空,nulls
數(shù)組的每一項都應(yīng) 該是' '
,而如果對應(yīng)的新值為空值則為
'n'
(在 后一種情況中,對應(yīng)的values
項中的新值無關(guān)緊 要)。注意nulls
不是一個文本字符串,只是一個 數(shù)組:它不需要一個'\0'
終止符。
修改過的新行,它被分配在上層的執(zhí)行器上下文中,或者在出錯時返回NULL
(錯誤的內(nèi)容請參考SPI_result
)
出錯時,SPI_result
被設(shè)置如下:
SPI_ERROR_ARGUMENT
如果rel
為NULL
,或者 row
為NULL
,或者ncols
小于等于 0,或者colnum
為
NULL
, 或者values
為NULL
。
SPI_ERROR_NOATTRIBUTE
如果colnum
包含一個無效的列號(小于等于 0 或者大于 row
中的列數(shù))。
SPI_ERROR_UNCONNECTED
如果SPI不是活躍狀態(tài)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: