dblink_fetch
Prev UpF.11. dblink — conectarse a otras bases de datos PostgreSQLHome Next

dblink_fetch

dblink_fetch — devuelve filas de un cursor abierto en una base de datos remota

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

Descripción

dblink_fetch recupera filas de un cursor previamente establecido por dblink_open.

Argumentos

connname

Nombre de la conexión a utilizar; omite este parámetro para usar la conexión sin nombre.

cursorname

El 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_error

Si 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.

Valor de retorno

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.

Notas

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.

Ejemplos

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)

Prev Up Next
dblink_open Home dblink_close