Skip to Main Content

Java Database Connectivity (JDBC)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Insert BLOB with oracle jdbc driver 9.2.0.8

632176Apr 4 2008 — edited Apr 4 2008
Hello.

I retrieve this exeception on driver 9.2.0.8, with driver 9.2.0.6 is ok:

java.lang.AbstractMethodError
at oracle.jdbc.driver.OracleConnection.unwrapComplete ly(OracleConnection.java:5149)
at oracle.jdbc.driver.OracleConnection.physicalConnec tionWithin(OracleConnection.java:5198)
at oracle.sql.BLOB.createTemporary(BLOB.java:776)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.jdbc.support.lob.OracleLobHand ler$OracleLobCreator.prepareLob(OracleLobHandler.j ava:393)
at org.springframework.jdbc.support.lob.OracleLobHand ler$OracleLobCreator.createLob(OracleLobHandler.ja va:340)
at org.springframework.jdbc.support.lob.OracleLobHand ler$OracleLobCreator.setBlobAsBytes(OracleLobHandl er.java:220)
at it.enel.cmb.utils.blob.OracleBlobManager$1.setValu es(OracleBlobManager.java:111)
at org.springframework.jdbc.core.support.AbstractLobC reatingPreparedStatementCallback.doInPreparedState ment(AbstractLobCreatingPreparedStatementCallback. java:70)
at org.springframework.jdbc.core.JdbcTemplate.execute (JdbcTemplate.java:588)
at org.springframework.jdbc.core.JdbcTemplate.execute (JdbcTemplate.java:616)
at it.enel.cmb.utils.blob.OracleBlobManager.modify(Or acleBlobManager.java:104)



The my environment:
Spring 2.5.2
Oracle jdbc thin driver 9.2.0.8
Bea WebLogic 10 MP1
The Datasource is simple, no XA.

The source code is:
JdbcTemplate jdbcTemplate = new JdbcTemplate(this.retrieveConnectionJndi());

String sQuery = "INSERT INTO ARTIFACT " +
"(IDARTIFACT, CONTENT, IDARTIFACTTYPE) " +
"VALUES (?, ?, ?)";

OracleLobHandler lobHandler = new OracleLobHandler();
jdbcTemplate.execute(
sQuery,
new AbstractLobCreatingPreparedStatementCallback(lobHa ndler) {
protected void setValues(PreparedStatement ps, LobCreator lobCreator)
throws SQLException {
ps.setBigDecimal(1, (BigDecimal)param.get(0));
lobCreator.setBlobAsBytes(ps, 2, bContent);
ps.setBigDecimal(3, new BigDecimal("1"));
}
}
);


any suggestion welcome.

Thanks,
Ashthur
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on May 2 2008
Added on Apr 4 2008
1 comment
4,668 views