dblink_fetch — 從遠端資料庫中已開啟的游標傳回資料列
dblink_fetch(text cursorname, int howmany [, bool fail_on_error]) returns setof record dblink_fetch(text connname, text cursorname, int howmany [, bool fail_on_error]) returns setof record
dblink_fetch
從先前由 dblink_open
建立的游標中提取資料列。
connname
要使用的連線名稱;省略此參數以使用未命名的連線。
cursorname
要從中提取的游標名稱。
howmany
要檢索的最大資料列數。從目前游標位置開始,向前移動,提取接下來的 howmany
列。一旦游標到達其末尾,就不會再產生任何列。
fail_on_error
如果為 true(省略時的預設值),則連線遠端發生的錯誤也會在本機引發錯誤。 如果為 false,則遠端錯誤在本機報告為 NOTICE,且函式不傳回任何列。
此函式傳回從游標中提取的資料列。若要使用此函式,您需要指定預期的欄位集合,如先前針對 dblink
所討論的。
如果在 FROM
子句中指定的傳回欄位數,與遠端游標傳回的實際欄位數不符,將會引發錯誤。 在這種情況下,遠端游標仍然會前進,就像沒有發生錯誤一樣。對於在遠端 FETCH
完成後,在本機查詢中發生的任何其他錯誤也是如此。
SELECT dblink_connect('dbname=postgres options=-csearch_path='); dblink_connect ---------------- OK (1 row) SELECT dblink_open('foo', 'select proname, prosrc from pg_proc where proname like ''bytea%'''); dblink_open ------------- OK (1 row) SELECT * FROM dblink_fetch('foo', 5) AS (funcname name, source text); funcname | source ----------+---------- byteacat | byteacat byteacmp | byteacmp byteaeq | byteaeq byteage | byteage byteagt | byteagt (5 rows) SELECT * FROM dblink_fetch('foo', 5) AS (funcname name, source text); funcname | source -----------+----------- byteain | byteain byteale | byteale bytealike | bytealike bytealt | bytealt byteane | byteane (5 rows) SELECT * FROM dblink_fetch('foo', 5) AS (funcname name, source text); funcname | source ------------+------------ byteanlike | byteanlike byteaout | byteaout (2 rows) SELECT * FROM dblink_fetch('foo', 5) AS (funcname name, source text); funcname | source ----------+-------- (0 rows)
如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用此表格來回報文件問題。