Ver Mensaje Individual
  #68 (permalink)  
Antiguo 04/04/2006, 10:22
Avatar de PequeñoMauro
PequeñoMauro
 
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años, 1 mes
Puntos: 3
Tema : Oracle

Pregunta : ¿Como puedo migrar data de tipo BLOB?

Respuesta : Una vez me ocurrio esto, migrando de una BD a otra, las inserciones lo haciamos con un insert select, pero en el caso de los BLOB no es posible.
Simplemente se crea un procedure y se declara una variable con el atributo del campo que tiene el tipo de dato BLOB, se crea un cursor para recorrer todos los campos y se almacena el tipo BLOB en la variable declarada.
Luego se hace el insert con la variable que tiene el BLOB almacenado. He aqui un ejemplo:
set serveroutput on

declare


parcodfac foto_cliente.codfac%type;
parcodesc foto_cliente.codesc%type;
parcodcli foto_cliente.codcli%type;
parfotcli foto_cliente.fotcli%type;
parurlcli foto_cliente.urlcli%type;
parusucre foto_cliente.ideusucre%type;
parfeccre foto_cliente.fechorusucre%type;
parusumod foto_cliente.ideusumod%type;
parfecmod foto_cliente.fechorusumod%type;
parcoderr NUMBER;
parmsgerr VARCHAR2(100);
nCont NUMBER;

cursor cl_foto is
SELECT codfac,codesc,codcli,fotcli,urlcli,ideusucre,fecho rusucre,ideusumod,fechorusumod
FROM foto_cliente;

BEGIN

nCont:=0;
for c_cl_foto IN cl_foto loop
parcodfac:=c_cl_foto.codfac;
parcodesc:=c_cl_foto.codesc;
parcodcli:=c_cl_foto.codcli;
parfotcli:=c_cl_foto.fotcli;
parurlcli:=c_cl_foto.urlcli;
parusucre:=c_cl_foto.ideusucre;
parfeccre:=c_cl_foto.fechorusucre;
parusumod:=c_cl_foto.ideusumod;
parfecmod:=c_cl_foto.fechorusumod;

insert into foto_cliente@ciencias
(codfac,codesc,codcli,fotcli,urlcli,ideusucre,fech orusucre,ideusumod,fechorusumod)
values
(parcodfac,parcodesc,parcodcli,parfotcli,parurlcli ,parusucre,parfeccre,parusumod,parfecmod);

nCont:=nCont+1;
end loop;

dbms_output.put_line('Son : '||to_char(nCont));

exception
when others then
parcoderr:=sqlcode;
parmsgerr:=sqlerrm;
rollback;
end;

En este caso creamos un dblink para poder acceder a la base de datos origen y desde esa conexión insertar a la base de datos destino.
Es la forma que use.....
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."