ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# dblink_fetch ## Name 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 ``` ## 描述 `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) ```