Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Desde java, dblink con 2 bases de datos

Estas en el tema de Desde java, dblink con 2 bases de datos en el foro de PostgreSQL en Foros del Web. Tengo dos bases de datos en postgreSQL y quiero copiar de la primera de ellas algunos datos de una tabla, a otra tabla de la ...
  #1 (permalink)  
Antiguo 04/06/2008, 04:55
 
Fecha de Ingreso: noviembre-2006
Mensajes: 199
Antigüedad: 17 años, 5 meses
Puntos: 2
Desde java, dblink con 2 bases de datos

Tengo dos bases de datos en postgreSQL y quiero copiar de la primera de ellas algunos datos de una tabla, a otra tabla de la segunda base de datos.
sobre la primera BD (BD1) UNICAMENTE leeré, nunca modificaré, y sobre la segunda base de datos (llamémosla BD2) insertaré aquellos datos de la tabla de BD1 que cumplan ciertos requisitos. Ambas tablas son de idéntica estructura.

He instalado el paquete dblink sobre la base de datos en la que quiero escribir, es decir, BD2, pues desde ella accederé a la base de datos de lectura.
Todo ésto debo ejecutarlo desde mi programa Java, integrándolo en el código o bien desde un archivo externo que ejecute en el postgreSQL desde pgAdmin.

Instalando el paquete dblink, la conexión y la sentencia me queda de la siguiente forma:

SELECT dblink_connect('link_volcarDatos','host=localhost port=5432 dbname=BD1 user=postgres password=1111);

//BD1, es la base de datos de lectura.
//BD2, es la base de datos de escritura.
//miTabla_deBD2 es el nombre de la tabla de la BD2, sobre la que escribir
//tablaGlobal_deBD1 es el nombre de la tabla de BD1, sobre la que leer los datos

Select * from dblink('link_volcarDatos', 'INSERT INTO miTabla_deBD2 SELECT * FROM tablaGlobal_deBD1 WHERE cod='001' )
AS reg_resultado();

SELECT dblink_disconnect('link_volcarDatos');

No sé si ésto está bien realizado, y en caso de que si lo esté pues no sé como ejecutarlo desde Java. Mis consultas SQL siempre las hice creando Conenction, Statement, etc. Y en éste caso, no sé si debo realizarlo usando el Statement sobre la BD de lectura o de Escritura, o ninguna.

Espero vuestra ayuda, muchas gracias de antemano.

Saludos.
  #2 (permalink)  
Antiguo 04/06/2008, 10:21
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Respuesta: Desde java, dblink con 2 bases de datos

Yo linke 2 BD con dbi-link, al linkarlo me crea un esquema en la BD desde la que linkas que hace de "copia".
Una vez hecho esto conecto a mi BD y prefinfando el esquema, bd_linkada.tabla, puedo hacer de todo.
Por tanto para hacerlo desde java solo tendras que conectar a la BD de escritura, que es desde la que linkas la de lectura.

A tener en cuenta que al linkar con dbi-link:
Te convierte todos los campos a texto -> tendras que castear
No coge más de 255 caracteres de campos de texto!
Algo más hay, ya lo comente en otro post de este foro.

Salu2
  #3 (permalink)  
Antiguo 27/03/2009, 13:23
 
Fecha de Ingreso: marzo-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Respuesta: Desde java, dblink con 2 bases de datos

Hola estoy tratando de usar link, pero tengo que instalar el paquete dblink, cómo lo hago??

Cita:
Iniciado por seyko Ver Mensaje
Yo linke 2 BD con dbi-link, al linkarlo me crea un esquema en la BD desde la que linkas que hace de "copia".
Una vez hecho esto conecto a mi BD y prefinfando el esquema, bd_linkada.tabla, puedo hacer de todo.
Por tanto para hacerlo desde java solo tendras que conectar a la BD de escritura, que es desde la que linkas la de lectura.

A tener en cuenta que al linkar con dbi-link:
Te convierte todos los campos a texto -> tendras que castear
No coge más de 255 caracteres de campos de texto!
Algo más hay, ya lo comente en otro post de este foro.

Salu2
  #4 (permalink)  
Antiguo 27/03/2009, 13:37
 
Fecha de Ingreso: marzo-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Respuesta: Desde java, dblink con 2 bases de datos

ya lo descargue y lo instale en la db... pero ahi aparecen unas funciones como dblink_build_insert(): quisiera ver como se maneja
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:21.