Postgresql 中文操作指南

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)