当你插入800多个汉字时,你的类型已经不能再用String类型来规定了,要用别的类型,(java.sql.Clob类型)而且你的数据库里也应该是CLOB类型。

解决方案 »

  1.   

    我记得Oracle允许一次插入的字符串最大长度应该是4000字节?不过意思是一样的,我也遇到过同样的问题。noratong(诺拉)说的解决办法,肯定他自己都没试过。你调用OraclePreparedStatement的setClob试试,这个方法只接受oracle.sql.CLOB类型的参数,如果不是这个类型,马上一个转型异常。到目前为止,我知道的唯一办法是:先保存一个很短的字符串到这个字段里(有没有EMPTY_CLOB方法?也许保存一个空的CLOB更好一些),然后把这条记录读出来,用getClob方法获得一个oracle.sql.CLOB对象,把真正的内容写入这个对象,再次保存。我已经被这个问题烦死了。该死的Oracle驱动……而且我们的持久化操作用了O/R映射,还是在一个framework里做的,一读一写就是巨大的效率损失(以及麻烦的代码)。要是有谁知道更简单的解决办法,一定要告诉我。