Blob - Oracle

View: New views
5 Messages — Rating Filter:   Alert me  

Blob - Oracle

by informatique.com.mx :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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


     

Re: Blob - Oracle

by Anibal Parallela :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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
PreparedStatement ps =
oracle.sql.BLOB newBlob = oracle.sql.BLOB.createTemporary(
newBlob.setBytes(1, out.toByteArray());
ps.setString(1, strNumeroFinal);
ps.setString(2, oficina.getNis_comercial());
ps.setBlob(3, newBlob);
ps.executeUpdate();
ps.close();= newDbConnectXML(DbConnectXML.IMGDB);baseRechazo.obtenerConexion().prepareStatement("INSERT INTO IMGDB.SALIENTES VALUES (?,'AE',?,?,'0','0')");baseRechazo.obtenerConexion(), false, oracle.sql.BLOB.DURATION_SESSION);

Saludos Anepa..



________________________________
De: L. I. Gerardo Ángeles Nava <gerardo1971@...>
Para: j0 <listadejava@...>; j3 <javaworld@...>; lista spain Java <javaSpain@...>; lista pensandoenjava <pensandoenjava@...>; lista desarrolloJava <DesarrolloJava@...>
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





      Yahoo! Cocina

Encontra las mejores recetas con Yahoo! Cocina.


http://ar.mujer.yahoo.com/cocina/

Re: Blob - Oracle

by Phaseolus :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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@...>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@...>
> *Para:* j0 <listadejava@...>; j3 <javaworld@...>; lista
> spain Java <javaSpain@...>; lista pensandoenjava <
> pensandoenjava@...>; lista desarrolloJava <
> DesarrolloJava@...>
> *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.

Re: Blob - Oracle

by informatique.com.mx :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Gracias, que validan la justificacion del mensaje jejeje, saludos!

--
Gerardo Ángeles, IT Developer.
Happiness Only Real When Shared

--- On Tue, 11/3/09, Anibal Parallela <anepa22@...> wrote:


From: Anibal Parallela <anepa22@...>
Subject: Re: [javaSpain] Blob - Oracle
To: javaSpain@...
Date: Tuesday, November 3, 2009, 1:15 PM


 






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( ).prepareStateme nt("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@ yahoo.com>
Para: j0 <listadejava@ egroups.com>; j3 <javaworld@egroups. com>; lista spain Java <javaSpain@yahoogrou ps.com>; lista pensandoenjava <pensandoenjava@ yahoogroups. com>; lista desarrolloJava <DesarrolloJava@ gruposyahoo. com.ar>
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/















     

Re: Blob - Oracle

by informatique.com.mx :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Claro!, gracias.
 
3 de 3, necesitamos saber si alguien tiene idea de pq primero insertar sin
el blob y despues el resto de los campos.
 
Será un bug?
 
Yo leí en algún lugar ahora que he estado consultando google y encontre
una advertencia sobre el blob, pero tengo varias paginas y no se donde quedo,
si la encuentro lo comento..

--
Gerardo Ángeles, IT Developer.
Happiness Only Real When Shared

--- On Tue, 11/3/09, Phaseolus <phaseolusv@...> wrote:


From: Phaseolus <phaseolusv@...>
Subject: Re: [javaSpain] Blob - Oracle
To: javaSpain@...
Date: Tuesday, November 3, 2009, 2:51 PM


 




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@yahoo. com.ar> 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( ).prepareStateme nt("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@ yahoo.com>
Para: j0 <listadejava@ egroups.com>; j3 <javaworld@egroups. com>; lista spain Java <javaSpain@yahoogrou ps.com>; lista pensandoenjava <pensandoenjava@ yahoogroups. com>; lista desarrolloJava <DesarrolloJava@ gruposyahoo. com.ar>
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.















__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com