Re: Blob - Oracle
Phaseolus <[email protected]> Tue, 3 Nov 2009 11:51:42 -0300
| Newsgroups | gmane.comp.java.javaspain |
|---|---|
| Message-ID | <[email protected]> |
Hola. No tengo a mano el código, pero también hace unos años me tocó hacer algo así pero con CLOB, que es parecido. Dentro de una transacción (con Spring) : - Primero guardaba primero el registro "oficial" sin el CLOB - Luego trozaba el CLOB en trozos pequeños (me parece que maximo 4K) y creaba N registros (uno por cada trozo) en una tabla temporal usando como PKs el ID del registro "oficial" (recién creado) y un autonumérico. - Luego invocaba a otro procedimiento almacenado que se encargaba de leer estos registros temporales y concatenarlos para luego insertarlos en el campo CLOB del registro "oficial" y así lograba guardar todo. - Luego se eliminaban los temporales. - Si en algún punto cualquiera fallaba, hacía rollback de todo y lanzaba el error. Espero te sirva como algoritmo. Saludos. ---------------- El 3 de noviembre de 2009 10:15, Anibal Parallela <anepa22-/[email protected]>escribió: > > > Hola, mira te cuento que este problema que me llevó varios días de sudor > y lagrimas. Yo necesitaba usar si o si jdbc con oracle. No me servia OCI, > por lo que fue lo único que me dio resultado. > > En mi caso inserto un Tiff como Blob.. > > Trata de adaptar este pedazo de código. > > Mas o menos lo que hace es crear un tabla temporal para los blob que luego > vuelca a una tabla común. > > Espero te sirva.. > > > > baseRechazo > = *new* DbConnectXML(DbConnectXML.*IMGDB*); > > PreparedStatement ps = baseRechazo.obtenerConexion().prepareStatement("INSERT > INTO IMGDB.SALIENTES VALUES (?,'AE',?,?,'0','0')"); > > oracle.sql.BLOB newBlob = oracle.sql.BLOB.*createTemporary*(baseRechazo.obtenerConexion(), > *false*, oracle.sql.BLOB.*DURATION_SESSION*); > > newBlob.setBytes(1, out.toByteArray()); > > ps.setString(1, strNumeroFinal); > > ps.setString(2, oficina.getNis_comercial()); > > ps.setBlob(3, newBlob); > > ps.executeUpdate(); > > ps.close(); > > Saludos Anepa.. > > ------------------------------ > *De:* L. I. Gerardo Ángeles Nava <gerardo1971-/[email protected]> > *Para:* j0 <[email protected]>; j3 <[email protected]>; lista > spain Java <[email protected]>; lista pensandoenjava < > [email protected]>; lista desarrolloJava < > [email protected]> > *Enviado:* martes, 3 de noviembre, 2009 2:47:27 > *Asunto:* [javaSpain] Blob - Oracle > > > > Buenas, > > Utilizo Oracle - Blob para almacenar un PDF. > > Pero tengo el siguiente problema el query es el siguiente: > > INSERT INTO Emp(id,name, pdf) VALUES('001' ,'Contrato' ,:BlobParameter) > > Si almacena el archivo pdf, pero no me almacena los datos > de id y name. > > Nota: Cuando doy un select el campo BLOB siempre aparece vacio (o > visualmente no se ve nada), es correcto?, sin embargo puedo recuperar la > info y pasarla a un archivo pdf. > > Si alguien ha hecho algo parecido almacenar/recuperar puede compartir el > código (incluso si lo tienen en c sharp). > > Gracias, saludos. > > -- > Gerardo Ángeles, IT Developer. > Happiness Only Real When Shared > > > ------------------------------ > > Encontra las mejores recetas con Yahoo! Cocina. > http://ar.mujer.yahoo.com/cocina/ > > -- "En cambio, el amor de Dios siempre será el mismo; Dios ama a quienes lo honran, y siempre les hace justicia a sus descendientes, los que cumplen fielmente su pacto y sus mandamientos. Mi Dios es el rey del cielo; es el dueño de todo lo que existe." Salmos 103:17-19 Irán Vásquez S.