StringBuffer sb = new StringBuffer();
        sb.append("insert into CSBILLMAILSENDINFO(SUBSCRIBEID,SENDTYPE,SENDTIME,SENDSTATUS,STATUSDESCRIBE) values(");
        sb.append(subscribeid).append(",").append(sendtype).append(
                ",sysdate,'");
        sb.append(sendstatus).append("','").append(content).append("')");
        String sql = sb.toString();
这是我在程序里的sql语句,执行时就报inserted value too large for column这个错误,但是我把里面的sql语句放到pl/sql里面执行就没事,请问这是怎么回事?

解决方案 »

  1.   

    这个错误就是你插入的值的宽度超过了表字段定义的宽度
    如果你在java不能插入,而在SQLPLUS或者 PL/SQL Developer里能够插入,就很奇怪了
    你确定你的java程序连接到oracle的用户,和你PL/SQL Developer登陆的用户是同一个吗?检查一下表的定义
      

  2.   

    回一楼的:报错的是正式库上,我用pl/sql插入的是测试库,所有数据库表都是一模一样的,这跟用户名有关吗?在程序里面有的能插入,有的不能插入,很奇怪,绝对没有一个值超过数据表定义的
      

  3.   

    你检查一下,两个库的字符集,插不进的那个库很可能是utf-8的
      

  4.   

    应该是sql有问题。调试一下就知道了。