关键代码:
String s = "";
s = "12345......" //这里面有很多内容,基本是汉字和数字,肯定无特殊字符,length最多的在5000左右。
现在往数据库里面存的时候,没有抛出异常,但是写不进去,length在1000左右的肯定保证100%写入,一大于1000,就写不进去了,也不报错。SQL2000中,字段的类型是Varchar,长度是8000.现在怀疑是写入数据库代码有问题。代码如下,至贴出关键代码:PreparedStatement ps4 = conn.prepareStatement("INSERT INTO LJAD02 (JH, KZRQ, MDC, JDCW, SJJS, GCJK) VALUES (?, ?, ?, ?, ?, ?)");
......
ps4.setString(6, s);//此处的s变量长度1000,就可以写入,超过1000,就写不进数据库,试用setObject也无效请问问题在哪里?

解决方案 »

  1.   

    看这贴
    http://topic.csdn.net/t/20060816/10/4952991.html
    固有bug?
    或者字段类型改成text试试
      

  2.   

    感觉倒不是类型问题。String s = "";
    s = "12345......" //这里面有很多内容,基本是汉字和数字,肯定无特殊字符,length最多的在5000左右。
    基本是汉字和数字,数据库里varchar(8000)最多存储4000个汉字,看看你的s里有多少汉字,最好看看你这个String的字节数是多少!汉字占绝大部分建议数据库分两列或者直接 varchar(max)  或者  nvarchar(max)  试试!
      

  3.   

    用text试试,或者是数据库原因啊
      

  4.   

    string s里的字符串长度超过了数据库里varchar的长度
    所以存不进去,建议将字段改成clob
    或者干脆不存数据库,将大字符串存入文件,数据库里存储文件的路径
    个人建议。。
      

  5.   

    我换成了text,还是老样子,varchar在sql2000下,是8000。还有sql2000下,有clob字段?
      

  6.   

    2000  ?   那就换text,text是可以,楼主调试看看。
      

  7.   

    各位,还是不好使啊,除了setString外,是否还有其他可用的啊。