一个新闻表,其中的用了CLOB类型,当我插入长度超过1000的String类型的东西就报了ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值错误,在网上查,说是setString对于1000-2000之间的内容会报错
本来是INSERT INTO TT(CONTENT)VALUES(?);
我改成了了:
int length = content.length();
String s1 = "";
String s2 = "";
if (length > 1000&&length<2000) {
s1 = content.substring(0, 1000);
s2 = content.substring(1000, length);
} else {
s1 = content;
}
INSERT INTO TT(CONTENT)VALUES(?||?"+");
也就是把超过1000低于2000的字符串,一分为2,此后我插入一千多和二千多的正常,但是我又碰到另一个问题,我插入的字符是3415时,这个错误又出现了

解决方案 »

  1.   

    我把还有面的代码改回以前的INSERT INTO TT(CONTENT)VALUES(?);发现插入超过3000的字符也正常了,但是1000-2000个字符的又出错了
      

  2.   

    自己解决了,加了个判断,如果字符在1000和2000之间,就调用SUBSTRING的那个SQL方法,否则就直接插入