Para acceder desde una base de datos PostgresSql a objetos de otra base de datos  la manera más sencilla es utilizar un DBLINK.

Para ello es necesario, que el usuario tenga instalada contib, luego importar la función dblink, voy a explicar de la siguiente manera:

Instalar y configurara para poder consultar en múltiple base de datos en postgresql (Probado en 8.3)
gbolivar:/home/gbolivar# aptitude install postgresql-contrib-8.3
gbolivar:/home/gbolivar# su - postgres
postgres@gbolivar:~$ psql template1 < /usr/share/postgresql/8.3/contrib/dblink.sql
postgres@gbolivar:~$ psql projecsiges_db

Bienvenido a psql 8.3.9, la terminal interactiva de PostgreSQL.

Digite:  \copyright para ver los términos de distribución
       \h para ayuda de órdenes SQL
       \? para ayuda de órdenes psql
       \g o punto y coma («;») para ejecutar la consulta
       \q para salir

projecsiges_db=# SELECT * FROM dblink('dbname=persona host=localhost user=u_fnc password=123456',
projecsiges_db(# 'select dnacionalidad, ccedula, dnombre_1, dnombre_2, dapellido_1, dapellido_2, ffecha_nac from tciudadano
projecsiges_db'# where ccedula=12345678 AND dnacionalidad=''V''')
projecsiges_db-# onidex(nacionalidad char(1), cedula integer, nombre1 text, nombre2 text, apellido1 text, apellido2 text, fecha_nac date);
 nacionalidad |  cedula  | nombre1  | nombre2 | apellido1 | apellido2 | fecha_nac
--------------+----------+----------+---------+-----------+-----------+------------
 V            | 12345678 | PRUEBA   | JOSE    | BOLIVAR   | BOLIVAR   | 1982-08-12
(1 fila)

centros_db=#

Anuncios