Hi!!

I want to insert byte array in database schema as follows:

     table message
    {
         msgid number(5),
         messagevalue BLOB
     };

I have done this in following way But I am getting NULL pointer exception.

//byte[] msgval .. contains byte values like 49 50 53 etc.

Blob msg;       
msg.setBytes(1,msgval);
// for  prepared statement  I have used st2.setBlob(4,msg);

Edited 3 Years Ago by Dani: Formatting fixed

I have never used these objects before but I can tell you that you get the exception because you don't instantiate the 'msg' object:

Blob msg; <-- it is null so when you write this:
msg.setBytes(1,msgval) --> you get the exception

I have never used these objects before but I can tell you that you get the exception because you don't instantiate the 'msg' object:

Blob msg; <-- it is null so when you write this:
msg.setBytes(1,msgval) --> you get the exception

how could I instantiate blob object.

> I want to insert byte array in database schema as follows

Where is this byte array coming from? If you are reading the contents of a file into a byte array which you are then trying to insert into the database, better use the methodsetBlob(int, InputStream, long) to avoid reading into a temporary byte array.

If it is a standalone byte array which you are trying to insert into the database, use the method specified above by wrapping the given byte array into a ByteArrayInputStream.

Something like:

byte[] bArr = /* grab the byte array */;
ByteArrayInputStream bIn = new ByteArrayInputStream(bArr);
/* relevant code */
pStmt.setBlob(paramPos, bIn, bArr.length);
This article has been dead for over six months. Start a new discussion instead.