dblink_fetch

dblink_fetch —从远程数据库中打开的游标返回行

Synopsis

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

Description

dblink_fetch从先前由dblink_open构建的游标中获取行。

Arguments

  • connname

    • 使用的连接名称;忽略此参数以使用未命名的连接。
  • cursorname

    • 要从中获取游标的名称。
  • howmany

    • 要检索的最大行数。从当前光标位置开始,向前移动下一个* howmany *行。一旦光标到达其末端,就不再产生任何行。
  • fail_on_error

    • 如果为 true(省略时的默认值),则在连接的远程端引发的错误也将导致本地引发错误。如果为 false,则远程错误将在本地报告为 NOTICE,并且该函数不返回任何行。

Return Value

该函数返回从游标获取的行。要使用此功能,您将需要指定预期的列集,如先前针对dblink所述。

Notes

FROM子句中指定的返回列数与远程游标返回的实际列数不匹配时,将引发错误。在这种情况下,如果没有发生错误,远程游标仍将前进多行。对于完成远程FETCH之后在本地查询中发生的任何其他错误也是如此。

Examples

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)