Expand my Community achievements bar.

Blobs in xml

Avatar

Former Community Member
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

7 Replies

Avatar

Level 9
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

Avatar

Former Community Member
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

Avatar

Former Community Member
In version 8.2 there is a base64 encoding exposed in the document extension for xpath.

Avatar

Former Community Member
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 ?

Avatar

Former Community Member
In 8.2 it is applied to a document variable so to answer your question ...No.