尝试将CKEditor的内容(用于CMS-Contents Management System)插入Oracle数据库 Oracle 10g 时,出现以下异常。
Oracle表中的字段的类型为clob。
java.lang.AbstractMethodError:oracle.jdbc.driver.T4CPreparedStatement.setCharacterStream(ILjava / io / Reader; J)V
相反,当我尝试使用JSON通过AJAX将相同的内容插入数据库时,不会导致此异常。
我在用着
自从我将Hibernate从3.2.5更改为4.2.0.CR1以来,一直引起异常。
这个连结说
setCharacterStream()方法有3个版本,其中两个版本是JDBC 4.0(Java 1.6)的一部分。您的JDBC驱动程序可能不支持它们:
该答案建议升级JDBC驱动程序,但该问题与我尚未使用的Oracle 11g有关。
我不太确定 JDBC 11.x驱动程序是否与Oracle 10g兼容?曾几何时,我曾尝试过一个,但无法正常工作。
如何解决这个异常?
编辑:
我刚刚下载了 ojdbc6.jar(以前是ojdbc14.jar使用上面指定的驱动程序下载的),其中包含Oracle JDBC Driver version - "11.1.0.7.0-Production"。
ojdbc6.jar
ojdbc14.jar
Oracle JDBC Driver version - "11.1.0.7.0-Production"
异常异常消失了。请告诉我,该驱动程序版本是否与 Oracle 10g 完全兼容。
如Oracle JDBC驱动程序11g文档中所述(http://docs.oracle.com/cd/E11882_01/java.112/e16548/getsta.htm
向后兼容 JDBC驱动程序经过认证可与当前支持的Oracle数据库版本一起使用。例如,Oracle数据库11g第2版(11.2)中的JDBC Thin驱动程序已通过认证,可与10.2.x,10.1.x,9.2.x和9.0.1.x Oracle数据库版本一起使用。但是,它们没有经过认证可与较旧的不受支持的数据库版本一起使用,例如8.0.x和7.x。
向后兼容
JDBC驱动程序经过认证可与当前支持的Oracle数据库版本一起使用。例如,Oracle数据库11g第2版(11.2)中的JDBC Thin驱动程序已通过认证,可与10.2.x,10.1.x,9.2.x和9.0.1.x Oracle数据库版本一起使用。但是,它们没有经过认证可与较旧的不受支持的数据库版本一起使用,例如8.0.x和7.x。