Oracle's JDBC BLOB support sucks....
Exception in thread "main" : java.lang.ClassCastException: javax.sql.rowset.serial.SerialBlob cannot be cast to oracle.sql.BLOB
...
Caused by: java.lang.ClassCastException: javax.sql.rowset.serial.SerialBlob cannot be cast to oracle.sql.BLOB
at oracle.jdbc.driver.OraclePreparedStatement.setBlob(OraclePreparedStatement.java:6634)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.setBlob(OraclePreparedStatementWrapper.java:126)
The "infringing" code is this:
SerialBlob sb1 = new SerialBlob(value);
stmt.setBlob(5, sb1); //column 5 is a blob, in case you're wondering
Really, why not code against standards?
EDIT 8/5/2011 19:35: Issue worked around like so:
ByteArrayInputStream bais1 = new ByteArrayInputStream(value);
stmt.setBinaryStream(5, bais1, value.length);
...
Caused by: java.lang.ClassCastException: javax.sql.rowset.serial.SerialBlob cannot be cast to oracle.sql.BLOB
at oracle.jdbc.driver.OraclePreparedStatement.setBlob(OraclePreparedStatement.java:6634)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.setBlob(OraclePreparedStatementWrapper.java:126)
The "infringing" code is this:
SerialBlob sb1 = new SerialBlob(value);
stmt.setBlob(5, sb1); //column 5 is a blob, in case you're wondering
Really, why not code against standards?
EDIT 8/5/2011 19:35: Issue worked around like so:
ByteArrayInputStream bais1 = new ByteArrayInputStream(value);
stmt.setBinaryStream(5, bais1, value.length);
This post is licensed under CC BY 4.0 by the author.