我更新一个CHAR字段时 :
  Connection con ....
  Statement stmt = conn.createStatement  (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);     
  ResultSet rs....
  ...connect to server
  ...open table// Modify Field
 rs.updateString(1,"123") ;
 rs.updateRow();   这个时候察看数据库,发现该字段的值变为"313234",我琢磨了一下,发现字符'1'的ASCII码就是16进制的31,'2'为32,'3'为33。不知道这是什么原因!
要让该字段正确赋值,该如何做,请指教,谢谢!

解决方案 »

  1.   

    我也不知道,不过你用sql来写不就可以了嘛!
      

  2.   

    可能是确少字符集包nls_charset12.zip
    将此加到你的classpath中。
      

  3.   

    估计是updateXXX的bug,我用updateInt(1,1)都会出错。用SQL事件探察器看了,传过去的值都错了,看了一下ResultSet里面用updateInt更新的对象--是1,没有错。传过去后就不知道怎么会这个样子。而且可能得到不一样的结果。faint!!!!
      

  4.   

    jdbc版本问题,816及其以前的都有,用817就没有,强烈建议。