向各位请教一个问题:向oracle的clob中插入大文本的时候,用preparedStatement的setObject()方法设置要插入的长字符串,报jdbc异常,似乎对长度由限制,setASCIIStream可以解决,因为读取的内容是汉字,setASCIIStream取的是乱码,所以改用setCharacterStream,但是改了问题就出现了,仍然报长度超出异常目前的状况是用localer的方法可以完整解决,就是先向数据库中插入一个emptyclob,再update其内容,但是这样做的话每次插入一条记录就需要进行3次数据库操作,对于批量的数据这是不可想象的,而且由于它的方法固有的特点(先insert,再select,最后update),不能用transaction批量操作,所以考虑用流解决但是仍然有长度限制数据库是oracle9i,驱动换了很多个试了,仍然有问题,大家遇到类似问题没有?谢谢关注!
- java.sql.SQLException: 数据大小超出此类型的最大值: 5299
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.ttc7.TTCItem.setArrayData(TTCItem.java:95)
at oracle.jdbc.dbaccess.DBDataSetImpl.setBytesBindItem(DBDataSetImpl.java:2413)
at oracle.jdbc.driver.OraclePreparedStatement.setItem(OraclePreparedStatement.java:1166)
at oracle.jdbc.driver.OraclePreparedStatement.setCharacterStream(OraclePreparedStatement.java:3752)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.setCharacterStream(DelegatingPreparedStatement.java:174)