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

Actualizar solo datos

Estas en el tema de Actualizar solo datos en el foro de Oracle en Foros del Web. Hola a todos, un abrazo y un saludo. Les presento mi caso: Tengo que unificar dos bases de datos, estas son las versiones de oracle ...
  #1 (permalink)  
Antiguo 25/07/2006, 16:42
 
Fecha de Ingreso: julio-2006
Mensajes: 4
Antigüedad: 18 años, 4 meses
Puntos: 0
Pregunta Actualizar solo datos

Hola a todos, un abrazo y un saludo.

Les presento mi caso: Tengo que unificar dos bases de datos, estas son las versiones de oracle en cada una
bd1 (so Windows NT) ==> Oracle9i Enterprise Edition 9.2.0.1.0
bd2 (so Windows 200 Server) ==> Oracle9i Enterprise Edition 9.2.0.5.0

Voy a utilizar un tercer servidor (Windows Server 2003), en donde realizare la unifiacion, la version de oracle que utilizare para la unificacion es:
Oracle9i Enterprise Edition 9.2.0.1.0

Los pasos que he hecho hasta ahora son los siguientes:
1) creo un respaldo total de mi bd1, con export.
2) Diseño la structura de mi bd en mi tercer servidor, lo hago con la aplicacion Database Configuration Assistant.
4) Terminada la structura corro un import total teniendo como origen el archivo que se genero del export total.

todos estos pasos los hago cada vez que requiero tener datos actualizados.

Lo que quiero hacer y no se de que manera hacerlo , pues ya he buscado y no he podido tener exito, es unicamente vaciar datos, es decir crear la estructura una vez mas y solo ir actualizando, de manera que solo agrege registros, y si hubo cambio en la estructura de alguna tabla tambien aplicarla, o si se creo alguna tabla, store procedure, trigger, solo aplicarlo a la estrucutura ya existente.

Mil gracias por leer mi mensaje y mas aun por auxiliarme.
  #2 (permalink)  
Antiguo 25/07/2006, 17:16
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 23 años
Puntos: 11
Los servidores entre si tendran que poder "verse" y en el nuevo server al owner que estas ocupando darle los privilegios de poder ver las tablas de los otros servidores y hacer un insert simple.

Código:
insert into tabla_nueva
from (select *
       from tabla_vieja
       minus
       select *
       from tabla_nueva)
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #3 (permalink)  
Antiguo 26/07/2006, 12:13
 
Fecha de Ingreso: julio-2006
Mensajes: 4
Antigüedad: 18 años, 4 meses
Puntos: 0
Sonrisa Respuesta

Hola, la otra que he hecho, que es un poco más complicada es hacer un archivo con los datos de la siguiente forma:

select 'insert into tabla_nueva (campo1, campo2) values ('||campo1||','||campo2||');' from tabla_vieja.

Hacer un spool de esta consulta, que quedará con:

insert in tabla_nueva (campo1,campo2) values (valor1, valor2);

Después sólo ejecuta el archivo en la nueva DB.

Si existen campo de tipo Varchar, Varchar2, date, deben ir con comilla, para ello debes utilizar chr(39) de la siguiente forma. Supongamos que el campo1 es quien tiene tipo Varchar. Entonces select 'insert into tabla_nueva (campo1, campo2) values ('||chr(39)||campo1||chr(39)||','||campo2||');' from tabla_vieja. Esto te dará un archivo con lo siguiente:

insert in tabla_nueva (campo1,campo2) values ('valor1', valor2);

Espero ser de ayuda.
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




La zona horaria es GMT -6. Ahora son las 07:38.