PostgreSQL 9.4.4 中文手册
上一页 | 上一级 |  | 下一页

# dblink_fetch

## 名称

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`预先建立的游标中抓取行。

## 参数

`conname`

  要使用的连接名称；省略这个参数使用未命名连接。

`cursorname`

  获取游标名称。

`howmany`

  要检索的最大行数。抓取下一个`howmany`行， 从当前光标位置开始，向前移动。一旦游标已经到达末尾，不会产生更多行。

`fail_on_error`

  如果真（忽略时缺省）那么在连接的远程端抛出的错误也会导致本地抛出错误， 如果假，那么远程错误在本地作为NOTICE被报告， 并且函数没有返回行。

## 返回值

该函数返回从游标中抓取的行。要使用该函数，你将需要 指定预期的字段集，正如前面讨论的`dblink`。

## 注意

在`FROM`子句上指定的返回列数之间的不匹配，并且通过远程游标返回实际列数，将抛出一个错误。在这种情况下，远程游标仍然按照没有产生错误时一样的行增长。 同样的在远程`FETCH`执行后本地查询产生的任何其他错误也是这样。

## 例子

    SELECT dblink_connect('dbname=postgres');
     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)

上一页 | 起始页 | 下一页
dblink_open | 上一级 | dblink_close