dblink_fetch — devuelve filas de un cursor abierto en una base de datos remota
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 recupera filas de un cursor previamente
establecido por dblink_open.
connnameNombre de la conexión a utilizar; omite este parámetro para usar la conexión sin nombre.
cursornameEl nombre del cursor del cual se van a recuperar las filas.
howmany
El número máximo de filas a recuperar. Se recuperan las siguientes howmany
filas, comenzando en la posición actual del cursor, moviéndose hacia adelante.
Una vez que el cursor ha llegado a su fin, no se producen más filas.
fail_on_errorSi es true (el valor por defecto cuando se omite), entonces un error lanzado en el lado remoto de la conexión hace que también se lance un error localmente. Si es false, el error remoto se reporta localmente como una NOTICE, y la función no devuelve ninguna fila.
La función devuelve las filas recuperadas del cursor. Para usar esta
función, necesitarás especificar el conjunto esperado de columnas,
como se discutió previamente para dblink.
Si hay una discrepancia entre el número de columnas de retorno especificado en la
cláusula FROM y el número real de columnas devueltas por el
cursor remoto, se lanzará un error. En este caso, el cursor remoto
sigue avanzando tantas filas como lo habría hecho si no hubiera ocurrido el error.
Lo mismo ocurre con cualquier otro error que se produzca en la consulta local
después de haber realizado el FETCH remoto.
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)