dblink_open — abre un cursor en una base de datos remota
dblink_open(text cursorname, text sql [, bool fail_on_error]) returns text dblink_open(text connname, text cursorname, text sql [, bool fail_on_error]) returns text
dblink_open() abre un cursor en una base de datos remota.
El cursor se puede manipular posteriormente con
dblink_fetch() y dblink_close().
connnameNombre de la conexión a utilizar; omite este parámetro para usar la conexión sin nombre.
cursornameEl nombre que se le asignará a este cursor.
sql
La sentencia SELECT que deseas ejecutar en la base de datos remota,
por ejemplo select * from pg_class.
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 el valor de retorno de la función se establece en ERROR.
Devuelve el estado, ya sea OK o ERROR.
Dado que un cursor solo puede persistir dentro de una transacción,
dblink_open inicia un bloque de transacción explícito
(BEGIN) en el lado remoto, si el lado remoto no
estaba ya dentro de una transacción. Esta transacción se
cerrará de nuevo cuando se ejecute el dblink_close correspondiente.
Ten en cuenta que si
utilizas dblink_exec para modificar datos entre
dblink_open y dblink_close,
y luego ocurre un error o utilizas dblink_disconnect antes de
dblink_close, tus cambios se
perderán porque la transacción se abortará.
SELECT dblink_connect('dbname=postgres options=-csearch_path=');
dblink_connect
----------------
OK
(1 row)
SELECT dblink_open('foo', 'select proname, prosrc from pg_proc');
dblink_open
-------------
OK
(1 row)