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)
如果您在文件中看到任何不正確、與特定功能的使用體驗不符或需要進一步澄清的地方,請使用 此表格 來報告文件問題。