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

dblink_exec

dblink_exec — ejecuta un comando en una base de datos remota

Synopsis

dblink_exec(text connname, text sql [, bool fail_on_error]) returns text
dblink_exec(text connstr, text sql [, bool fail_on_error]) returns text
dblink_exec(text sql [, bool fail_on_error]) returns text

Descripción

dblink_exec ejecuta un comando (es decir, cualquier sentencia SQL que no devuelva filas) en una base de datos remota.

Cuando se proporcionan dos argumentos text, el primero se busca primero como el nombre de una conexión persistente; si se encuentra, el comando se ejecuta en esa conexión. Si no se encuentra, el primer argumento se trata como una cadena de información de conexión como para dblink_connect, y la conexión indicada se realiza únicamente durante la duración de este comando.

Argumentos

connname

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

connstr

Una cadena de información de conexión, como se describió anteriormente para dblink_connect.

sql

El comando SQL que deseas ejecutar en la base de datos remota, por ejemplo insert into foo values(0, 'a', '{"a0","b0","c0"}').

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.

Valor de retorno

Devuelve el estado, ya sea la cadena de estado del comando o ERROR.

Ejemplos

SELECT dblink_connect('dbname=dblink_test_standby');
 dblink_connect
----------------
 OK
(1 row)

SELECT dblink_exec('insert into foo values(21, ''z'', ''{"a0","b0","c0"}'');');
   dblink_exec
-----------------
 INSERT 943366 1
(1 row)

SELECT dblink_connect('myconn', 'dbname=regression');
 dblink_connect
----------------
 OK
(1 row)

SELECT dblink_exec('myconn', 'insert into foo values(21, ''z'', ''{"a0","b0","c0"}'');');
   dblink_exec
------------------
 INSERT 6432584 1
(1 row)

SELECT dblink_exec('myconn', 'insert into pg_class values (''foo'')',false);
NOTICE:  sql error
DETAIL:  ERROR:  null value in column "relnamespace" violates not-null constraint

 dblink_exec
-------------
 ERROR
(1 row)

Prev Up Next
dblink Home dblink_open