ORA-01401 inserted value too large for column 
Cause: The value entered is larger than the maximum width defined for the column. 
Action: Enter a value smaller than the column width or use the MODIFY option with ALTER TABLE to expand the column width. 
可能列的宽度不够!

解决方案 »

  1.   

    只有把pstmt.setString这些一个一个删掉看看是那个有问题最好用二分法删因为有的数据库插入时候会做类型转换...所以只能一个个的排查
      

  2.   

    可能是类型不匹配或者是字段太小了。
    也有可能是使用到CLOB或BLOB的问题你可以看看%TOMCAT_HOME%/log当天的日志。
      

  3.   

    建议不要这么写SQL,
    sql="insert into zh_szjz values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
    把字段都写出来,也许是字段的位置不同,导致字段与值不对应。ORA-01401:应该是传进去的内容太大了才导致的。sql="insert into zh_szjz(XH,XM, ...) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";