Highlighted

Blobs in xml

Sentah

26-08-2008

Hi,

Has anyone handled BLOB/image types in process workflow. I have a scenario where I extract the data(blob) from database and return the same as an xml output to the caller. Do i have to handle the blob return type specially while trying to embed in the xml? I know we have to convert the blob to a binary stream. Has anyone done it before ?


for .e.g my xml doesn't reflect the real value when retrieved from the database.



Dummy Sketch
oracle.sql.BLOB@ac7a58

Replies

Highlighted

HowardTreisman

27-08-2008

Hi Senthil

Blobs are usually stored in XML in some sort of encoded format, usually Base64.

We have a component for base64 encoding and decoding. I'm not sure off the top of my head whether our SQL component handles blob types in the database. If you'd like to verify, please email support-at-avoka.com, and they'll get you an answer...

Howard

http://www.avoka.com
Highlighted

Sentah

27-08-2008

I was able to solve this using a custom component and would be glad to know any alternative approaches.



-Read the image as a blob

-encode it into base64 using apache commons base64 (org.apache.commons.codec.binary.Base64) into a byte array (there is just 1 trick here , i think its specific to oracle db)

-create a new string out of byte array and return the same.



For decoding its the reverse process



-Read the encoded string

-decode it using Base64.decodeBase64(bytearray)

-create a new blob or a file

-insert into db
Highlighted

Sentah

28-08-2008

Hi Paul,



Thanks for the update, I did try the option and it always returned an empty xml indicating that it was unable to convert it to a base64 format.



I am just trying to understand how to use the base64 encoding on the returned blob object from an underlying sql query. Is there anyway we can do it just on the blob object alone and not on every field ?