datos Oracle a otra base de datos. Podria haber pensado en hacer un export/import de la base
de datos. Pero es que realmente no necesitaba copiar todo el esquema de la base de datos, ni
perder demasiado tiempo, simplemente queria copiar el contenido de una serie de tablas origen
desde la base de datos inicial a las mismas tablas destino de la base de datos destino.
Mi solucion ha sido usar Database Links.
Que es un database link?
o! a intentar explicarlo de manera mu! sencilla aunque no sea la mas correcta. "n Database
Link es como un puntero desde una base de datos hacia otra base de datos remota. #$ que nos
%a a permitir eso&. Pues acceder a las tablas de la base de datos remota como si 'ueran tablas
de nuestra misma base de datos.
Por e(emplo tengo la )abla* en mi +ase de datos Oracle* ! quiero hacer un ,ELE-) sobre la
)abla. de la +ase de datos Oracle.. ,i creo en Oracle* un database link llamado por e(emplo
/Oracle.Dblink0 esta consulta seria tan simple como e(ecutar1
SELECT * FROM Tabla2@Oracle2Dblink
#,imple, no&. +asta con concatenar al identi'icador de la tabla /2DatabaseLink3a3usar0.
$ desde nuestra base de datos Oracle*, podriamos estar consultando los datos de la tabla )abla.
de la base de datos remota Oracle..
$ si hacemos1
INSERT INTO Tabla1 (select * fro Tabla2@Oracle2Dblink !"ere
i#$con#icion%
Pues que insertaria en )abla*, todos los datos de )abla. cu!o id 'uera igual a condicion. #%as
pillando la idea&. Los databaseLink pueden ser mu! utiles.
eamos como crearlo.
,i queremos crear un database link podemos e(ecutar1
CREATE DATABASE LINK nombre_del_dblink
CONNECT TO usuario
IDENTIFIED BY passord
!SIN" #$DESCRI%TION & $ADDRESS & $%ROTOCOL & TC%' $(OST &
)os*name'$%ORT & +,-+'' $CONNECT_DATA & $SID & sidname'''.
"n e(emplo1
CREATE DATABASE LINK %E%OTE_DBLINK
CONNECT TO pepe
IDENTIFIED BY pepo*e
!SIN" #$DESCRI%TION & $ADDRESS & $%ROTOCOL & TC%' $(OST &
/i(os*name'$%ORT & +,-+'' $CONNECT_DATA & $SID & Ora0le-'''.
-reariamos entonces un dblink llamado /PEPO)E3D+L4560 que nos permite conectar desde la
base de datos actual a una base de datos remota Oracle, situada en el host70Mi8ostname0 ! con
el ,4D70Oracle.9
:hora si quisieramos usar el dblink e(ecutamos la ,ELE-) concatenando al identi'icador de la
tabla /2PEPO)E3D+L45601
SELECT i#&nae FROM 's(arios@)e*ote+#blink,
El Dblink incluso te permite copiar campos +LO+ de tablas si estas mantienen la misma
estructura. ,i acaso las tablas no son iguales, siempre puedes crear una tabla temporal que
mantenga el esquema de la tabla inicial ! despues la copie en el destino.
,i de todas 'ormas usar DbLinks te parece complicado, tambien puedes emplear plugins como
D+-op! (ver imagen al principio del articulo) que permiten en el 4DE Eclipse, copiar tablas entre
bases de datos distintas.