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