java.lang.AbstractMethodError:oracle.jdbc.driver.T4CPreparedStatement.setCharacterStream(ILjava / io / Reader; J)V

时间:2013-02-17 21:15:47

标签: spring hibernate oracle10g clob

尝试将CKEditor(用于CMS - 内容管理系统)的内容插入Oracle数据库时,我收到以下异常 - Oracle 10g

Oracle表中的字段是clob类型。

  

java.lang.AbstractMethodError:   oracle.jdbc.driver.T4CPreparedStatement.setCharacterStream(ILjava / IO /阅读器;Ĵ)V

另一方面是当我尝试使用JSON通过AJAX将相同内容插入数据库时​​,不会导致此异常。

我正在使用

  • Spring 3.2.0
  • Hibernate 4.2.0.CR1
  • Oracle JDBC驱动程序版本 - 10.2.0.5.0
  • JDK - 1.7
  • Oracle 10g

由于我将Hibernate从3.2.5更改为4.2.0.CR1

,因此导致异常

This链接说

  

setCharacterStream()方法有3个版本,其中两个版本   作为JDBC 4.0(Java 1.6)的一部分添加。您的JDBC驱动程序可能不会   支持他们:

This回答建议升级JDBC驱动程序,但这个问题是关于我还没有使用的Oracle 11g。

我不太确定。 JDBC 11.x驱动程序是否与Oracle 10g兼容?曾几何时,我曾试过一次,但它没有正常工作。

如何解决此异常?


修改

我只有downloaded ojdbc6.jar(以前是ojdbc14.jar,其驱动程序如上所述),其中包含Oracle JDBC Driver version - "11.1.0.7.0-Production"

异常异常消失了。请告诉我,如果此驱动程序版本与 Oracle 10g 完全兼容。

1 个答案:

答案 0 :(得分:8)

  

我不太确定。 JDBC 11.x驱动程序是否与Oracle 10g兼容?   曾几何时,我曾试过一次,但它没有正常工作。

如Oracle JDBC驱动程序11g文档http://docs.oracle.com/cd/E11882_01/java.112/e16548/getsta.htm

所述
  

向后兼容性

     

JDBC驱动程序经过认证可与当前支持的驱动程序配合使用   Oracle数据库的版本。例如,JDBC Thin驱动程序   Oracle Database 11g第2版(11.2)经过认证可以使用   10.2.x,10.1.x,9.2.x和9.0.1.x Oracle数据库版本。但是,它们未经过认证,无法使用较旧的不受支持的数据库   版本,例如8.0.x和7.x。