Sunteți pe pagina 1din 9

DBLINK

Ejecutor de Consultas de Forma Remota.


Descripcin
Dblink ejecuta una consulta (por lo general un SELECT, pero puede ser cualquier sentencia
SQL que devuelve filas) en una base de datos remota.
Cuando se dan dos argumentos de texto, la primera de ellas se vea por primera vez como el
nombre de una conexin persistente; si lo encuentra, el comando se ejecuta en esa
conexin. Si no lo encuentra, el primer argumento es tratado como una cadena de
informacin de conexin como para dblink_connect, y la conexin indicada se hace slo por
la duracin de este comando.
Sinopsis
dblink (connname texto, texto SQL [, bool fail_on_error]) devuelve conjunto de registro
dblink (connstr texto, texto SQL [, bool fail_on_error]) devuelve conjunto de registro
dblink (texto SQL [, bool fail_on_error]) devuelve conjunto de registro
Argumentos
Connname Nombre de la conexin para utilizar; omita este parmetro para utilizar la
conexin sin nombre.
Connstr Una cadena de informacin de conexin, como se describe previamente para
dblink_connect.
Sql La consulta SQL que se desea ejecutar en la base de datos remota, por ejemplo select
* from foo.
Fail_on_error Si es verdad (el valor por defecto cuando se omite), entonces un error que se
produce en el lado remoto de la conexin se produce un error al ser lanzado tambin a nivel
local. Si es falso, el error se informa a distancia a nivel local como un aviso y la funcin
devuelve ninguna fila.
Valor de Retorno
La funcin devuelve la fila (s) producido por la consulta. Desde dblink se puede utilizar con
cualquier consulta, se declara a regresar registro, en lugar de especificar cualquier conjunto
de columnas. Esto significa que debe especificar el conjunto esperado de columnas en la
consulta de llamadas - de lo contrario PostgreSQL no sabra qu esperar. Aqu hay un
ejemplo:
SELECT * FROM dblink('dbname=mydb', 'select pro_name, pro_materia from profesor') AS
t1(pro_name character, pro_materia character) WHERE pro_name LIKE 'B%';

La parte de "alias" de la clusula FROM debe especificar los nombres de columna y tipos
que la funcin devolver. (Especificacin de nombres de columna en un alias es en realidad
la sintaxis SQL estndar, pero especificando los tipos de columna es una extensin
PostgreSQL.) Esto permite al sistema para entender lo que * debe expandirse a, y lo que
Pro_name en la clusula WHERE se refiere, antes de intentar ejecutar la funcin. En tiempo
de ejecucin, un error se produce si el resultado de la consulta real de la base de datos
remota no tiene el mismo nmero de columnas que se muestran en la clusula FROM. Los
nombres de columna no tiene por qu coincidir, sin embargo, y dblink no insiste en el tipo de
juegos compatibles tampoco. Se tendr xito siempre y cuando las cadenas de datos
devueltos son de entrada vlido para el tipo de columna declarada en la clusula FROM.

Desde la pgina principal de Pgadmin3 o desde consola se crean las bases de datos en las
que se quiere hacer la consulta todas con sus respectivas tablas y datos guardados.

Tablas de la Base de Datos Dblink1

Tabla de la Base de Datos Dblink2

Para poder dar uso a cada una de las sentencias de la funcin dblink hay que crear en
primera instancia una extensin desde el Sql Editor cualquiera de las bases de datos
existentes para ser de punto de eje con el comando 'CREATE EXTENSION DBLINK'

Con la creacin de la extensin dblink se crean en un total de 41 funciones para poder hacer
uso del Dblink y poder hacer las consultas de forma remota.

Para poder saber si las funciones de la extensin dblink creada funcionan correctamente
hacemos uso de la sentencia Sql Select dblink('dbname=Nombre_BD); y si el resultado de
este es OK significa que la conexin a la base de datos Nombre_BD esta establecida y se
puede ejecutar las consultas a disponer.

Teniendo asi posible la ejecucin de la consulta remota sabiendo cada uno de los campos de
la tabla de la otra base de datos que se va a usar.

Datos de la Tabla municipio de la base de Datos dblink1 usada en la consulta remota.

Datos de la Tabla usuario de la base de Datos dblink2 usada en la consulta remota.

DBLINK_CONNECT()
Abre una conexin persistente con una base de datos remota
Descripcin
dblink_connect () establece una conexin con un mando a distancia PostgreSQL base de
datos. El servidor y base de datos para ser contactados son identificados a travs de una
norma libpqcadena de conexin. Opcionalmente, un nombre se puede asignar a la conexin.
Conexiones mltiples con nombre pueden ser abiertas a la vez, pero slo se permite una
conexin sin nombre a la vez. La conexin se mantendr hasta que se cierre o hasta que la
sesin de base de datos se termin.
La cadena de conexin tambin puede ser el nombre de un servidor extranjera existente. Se
recomienda utilizar el contenedor de datos-extranjera dblink_fdw la hora de definir el servidor
extranjera. Vea el ejemplo siguiente, as como CREATE SERVER y CREATE USER
MAPPING.
Sinopsis
dblink_connect (texto connstr) devuelve el texto
dblink_connect (texto connname, connstr texto) devuelve el texto
Argumentos
connname El nombre a utilizar para esta conexin; Si se omite, se abre una conexin sin
nombre, reemplazando cualquier conexin existente sin nombre.
Connstr libpq informacin al estilo de cadena de conexin, por ejemplo host = 127.0.0.1
port = 5432 dbname = mybd password = miclave user = postgres.
Valor de Retorno
Devuelve el estado, que siempre es OK (ya que cualquier error hace que la funcin de
generar un error en lugar de regresar).
DBLINK_CONNECT_U()
Abre una conexin persistente con una base de datos remota, de forma insegura
Descripcin
dblink_connect_u () es idntica a dblink_connect () , excepto que permitir a los no
superusuarios para conectarse utilizando cualquier mtodo de autenticacin.
Si el servidor remoto selecciona un mtodo de autenticacin que no implique una contrasea,
a continuacin, suplantacin y puede ocurrir subsiguiente escalada de privilegios, porque se
parecen tener su origen en el usuario con el que los locales de la sesin de PostgreSQL se

ejecuta el servidor. Adems, incluso si el servidor remoto hace exigir una contrasea, es
posible que la contrasea que se suministra desde el entorno de servidor, tales como ~ /
.pgpass fichero propiedad de usuario del servidor. Esto abre no slo un riesgo de
suplantacin, pero la posibilidad de exponer una contrasea a un servidor remoto de poca
confianza. Por lo tanto, dblink_connect_u () se instala inicialmente con todos los privilegios
revocados desde PBLICO , por lo que es exigible un-excepto por superusuarios. En
algunas situaciones puede ser conveniente conceder EXECUTE permiso para que
dblink_connect_u () a usuarios especficos que se consideran fiables, pero esto debe
hacerse con cuidado. Tambin se recomienda que cualquier ~ / .pgpass fichero propiedad de
usuario del servidor no contiene ningn registro especificando un nombre de host comodn.
Sinopsis
dblink_connect_u (texto connstr) devuelve el texto
dblink_connect_u (texto connname, connstr texto) devuelve el texto
DBLINK_DISCONNECT()
Cierra una conexin persistente con una base de datos remota
Descripcin
dblink_disconnect () cierra una conexin abierta previamente por dblink_connect () . La forma
sin argumentos cierra una conexin sin nombre.
Sinopsis
dblink_disconnect () devuelve el texto
dblink_disconnect (texto connname) devuelve el texto
Valor de Retorno
Devuelve el estado, que siempre es OK (ya que cualquier error hace que la funcin de
generar un error en lugar de regresar).
DBLINK_EXEC()
Ejecuta un comando en una base de datos remota
Descripcin
dblink_exec ejecuta un comando (es decir, cualquier sentencia SQL que no devuelve filas) en
una base de datos remota.
Cuando dos de texto se dan argumentos, el primero que se vea por primera vez como el
nombre de una conexin persistente; si lo encuentra, el comando se ejecuta en esa
conexin. Si no lo encuentra, el primer argumento es tratado como una cadena de
informacin de conexin como para dblink_connect , y la conexin indicada se hace slo por
la duracin de este comando.

Sinopsis
dblink_exec (connname texto, texto SQL [, bool fail_on_error]) devuelve el texto
dblink_exec (connstr texto, texto SQL [, bool fail_on_error]) devuelve el texto
dblink_exec (sql texto [, bool fail_on_error]) devuelve el texto
Argumentos
Connname Nombre de la conexin para utilizar; omita este parmetro para utilizar la
conexin sin nombre.
Connstr Una cadena de informacin de conexin, como se describe previamente para
dblink_connect.
Sql El comando SQL que se desea ejecutar en la base de datos remota, por ejemplo,
insertar en los valores foo (0, 'a', '{ "a0", "b0", "c0"} ").
Fail_on_error Si es verdad (el valor por defecto cuando se omite), entonces un error que se
produce en el lado remoto de la conexin se produce un error al ser lanzado tambin a nivel
local. Si es falso, el error se informa a distancia a nivel local como AVISO, y el valor de
retorno de la funcin se establece en ERROR.
Valor de Retorno
Devuelve el estado, ya sea cadena de estado de la orden o ERROR.

S-ar putea să vă placă și