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(省略時預設為 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)
如果您在文件中看到任何不正確、與您對特定功能的實際體驗不符或需要進一步澄清的內容,請使用 此表單 報告文件問題。