• Post Reply Bookmark Topic Watch Topic
  • New Topic

Inserting Image into Oracle.  RSS feed

Joseph Hatton
Posts: 20
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Since the image is coming in as a byte array, the "insert" statement wouldn't make sense since I am building the SQL String in Java and would make a messy conversion and storing the "image" as blob in the Oracle database.
I am inserting an image in a round-about way.
Here is the code:
//Pass the ResultSet(rs) to this method.
//The sql is "select image from image_table where chgbk_id=12345
BLOB blob = ((OracleResultSet)rs).getBLOB(1);
String imageData = getTransactionData(transIndex).getString(IChgbkModel.IMAGE);
throw new Exception("Image data is null.");
ImageModel image = new ImageModel(imageData);
InputStream instream = new ByteArrayInputStream(image.getImageData());
OutputStream outstream = blob.getBinaryOutputStream();
int size = blob.getBufferSize();
byte[] buffer = new byte[size];
int length = -1;

* Use the read() method to read the GIF file to the byte array buffer,
* then use the write() method to write it to the BLOB. When you finish,
* close the input and output streams.
while ((length = instream.read(buffer)) != -1){
outstream.write(buffer, 0, length);
catch(Exception exc){
throw new DatasourceException("Error when trying to update Image BLOB data.", exc);

When this code is applied to Connection Pooling in WebSphere 4.0.3 server it doesn't like the "OracleResultSet" object I am using. I get this error:
java.lang.ClassCastException: com.ibm.ejs.cm.proxy.ResultSetProxy
Any help would be appreciated.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!