用PreparedStatement应该可以的,ResultSet的意外太多.

解决方案 »

  1.   

    是不是你的单引号使用有问题,sql语句是String类型,String中使用单引号要转义吧?
      

  2.   

    不应该是单引号的问题,因为其他的插入都是可以的,如:
    insert into cn_r_sertype (instanceid, bureauno, SERTYPE
          , NAME, SERPRIORITY) 
          select instanceid, bureauno, SERTYPE
          , '高费率呼叫', SERPRIORITY from cn_r_sertype2 where SERTYPE = 4;
    长度也没问题,因为sqlplus中执行没问题的。
    我用的是statement stmt;
    stmt.execute(sql)
    应该和resultset没关系,我也不要返回值
      

  3.   

    你没做中文转换,插进去,也是乱码
    String sql = new String("update cn_r_sertype set name='VGCS紧急应用' where sertype=1".getBytes("iso-8859-1"),"gb2312");转一下,就可以了
      

  4.   

    Eraserpro(Eraser,毁灭者?橡皮?) 简直在瞎说8道
      

  5.   

    hotenM(南京) :你说的正确,我查看了是乱码。
    但是为什么sqlplus插进去的汉字就不是乱码呢?
    有什么好办法jdbc执行sql脚本时,自动转换中文集呢?
    谢谢先,等待中
      

  6.   

    是,是,大家都是帮忙解决问题,就事论事,不涉及其他方面。
    对各位表示感谢。
    说明我的数据库字符集用的是
    SQL> select * from v$nls_parameters;PARAMETER                                                        VALUE
    ---------------------------------------------------------------- -------------------------------------
    NLS_LANGUAGE                                                     AMERICAN
    NLS_TERRITORY                                                    AMERICA
    NLS_CURRENCY                                                     $
    NLS_ISO_CURRENCY                                                 AMERICA
    NLS_NUMERIC_CHARACTERS                                           .,
    NLS_CALENDAR                                                     GREGORIAN
    NLS_DATE_FORMAT                                                  DD-MON-YY
    NLS_DATE_LANGUAGE                                                AMERICAN
    NLS_CHARACTERSET                                                 WE8ISO8859P1
    NLS_SORT                                                         BINARY
    NLS_TIME_FORMAT                                                  HH.MI.SSXFF AM
    NLS_TIMESTAMP_FORMAT                                             DD-MON-RR HH.MI.SSXFF AM
    NLS_TIME_TZ_FORMAT                                               HH.MI.SSXFF AM TZH:TZM
    NLS_TIMESTAMP_TZ_FORMAT                                          DD-MON-RR HH.MI.SSXFF AM TZH:TZM
    NLS_DUAL_CURRENCY                                                $
    NLS_NCHAR_CHARACTERSET                                           WE8ISO8859P1
    NLS_COMP                                                         BINARY
      

  7.   

    我的问题是为什么英文版的sqlplus客户端,执行中文字符入库就是正常的,没有产生乱码呢?
    如何判别string中存在中文?这样我好程序去控制自动转换,谢谢!
      

  8.   

    hotenM,我用了你说的中文转化后
    String sql = new String("update cn_r_sertype set name='VGCS紧急应用' where sertype=1".getBytes("iso-8859-1"),"gb2312");
    查看数据不是乱码,但中文都变成???了,怎么回事儿?
    有解决的办法吗?
      

  9.   

    hotenM,谢谢你,在你的指点下已经解决,
    尝试了几次,正确的是:
    String sql = new String("update cn_r_sertype set name='VGCS紧急应用' where sertype=1".getBytes(),("iso-8859-1");