你是用JSP吗?
可能是JAVA字符集的问题。

解决方案 »

  1.   

    是asp
    上面的问题是在sqlplus遇到的,和什么应用没有关系吧!
      

  2.   

    没有问题啊,我用816测试
    SQL> CREATE TABLE test(aa VARCHAR2(10));Table createdSQL> insert into test values('喆');1 row insertedSQL> select * from test;AA
    ----------
    喆SQL> select * from test where aa='喆';AA
    ----------
    喆SQL>
      

  3.   

    不过我的字符集是US7ASCII,
    如果真这样,我想可能与字符集有关系
      

  4.   

    SQL> select * from nls_database_parameters
      2  ;PARAMETER
    ------------------------------
    VALUE
    --------------------------------------------------------------------------------NLS_LANGUAGE
    AMERICANNLS_TERRITORY
    AMERICANLS_CURRENCY
    $
    PARAMETER
    ------------------------------
    VALUE
    --------------------------------------------------------------------------------NLS_ISO_CURRENCY
    AMERICANLS_NUMERIC_CHARACTERS
    .,NLS_CHARACTERSET
    ZHS16GBK
    PARAMETER
    ------------------------------
    VALUE
    --------------------------------------------------------------------------------NLS_CALENDAR
    GREGORIANNLS_DATE_FORMAT
    DD-MON-RRNLS_DATE_LANGUAGE
    AMERICAN
    PARAMETER
    ------------------------------
    VALUE
    --------------------------------------------------------------------------------NLS_SORT
    BINARYNLS_TIME_FORMAT
    HH.MI.SSXFF AMNLS_TIMESTAMP_FORMAT
    DD-MON-RR HH.MI.SSXFF AM
    PARAMETER
    ------------------------------
    VALUE
    --------------------------------------------------------------------------------NLS_TIME_TZ_FORMAT
    HH.MI.SSXFF AM TZH:TZMNLS_TIMESTAMP_TZ_FORMAT
    DD-MON-RR HH.MI.SSXFF AM TZH:TZMNLS_DUAL_CURRENCY
    $
    PARAMETER
    ------------------------------
    VALUE
    --------------------------------------------------------------------------------NLS_COMP
    BINARYNLS_NCHAR_CHARACTERSET
    ZHS16GBKNLS_RDBMS_VERSION
    8.1.7.0.0
    SQL> insert into test values('喆',1,1)
      2  ;已创建 1 行。SQL> commit;提交完成。SQL> select * from test where day1='喆';DA         ZS         JS
    -- ---------- ----------
    喆          1          1我这没问题,
      

  5.   

    1.zhs16GBK 是支持国标的GBK大字符集,很多不常见的字都能显示和支持
     zhs16CGB231280 是以前Oracle支持中文的字符集,有部分生僻字不支持,后者  应 该是前者的子集;2.由于你用的是WEB方式,使用的是WEB服务器上客户端连接(不是数据库服务器),你将WEB服务器上客户端连接的字符集修改为SIMPLIFIED CHINESE_CHINA.ZHS16GBK即可没问题,在注册表中的NLS_lANG项中修改
      

  6.   

    如果服务器的字符集是zhs16CGB231280,在处理中文时会存在问题。
    如在客户端:
    C:\>set nls_lang=AMERICAN_AMERICA.zhs16CGB231280C:\>sqlplus user/password@server1SQL> create table t1 (c2 varchar2(10));
    Table created.
     
    SQL> insert into t1 values('昇大案');1 row created.SQL> insert into t1 values('喆');
    ERROR:
    ORA-01756: quoted string not properly terminated
    SQL> insert into t1 values('喆2');1 row created.SQL> insert into t1 values('喆 ');1 row created.SQL> insert into t1 values('大 ');1 row created.SQL> select c2,length(c2) from t1;C2         LENGTH(C2)
    ---------- ----------
    昇大案              4
    喆2                  2
    喆                   2
    大                  2SQL> select c2||'#',trim(c2)||'#' from t1;C2||'#'     TRIM(C2)||'
    ----------- -----------
    昇大案#     昇大案#
    喆2#         喆2#
    喆 #         喆 #
    大 #        大#如在客户端将字符集改为zhs16gbk,则结果是:
    C:\>set nls_lang=SIMPLIFIED CHINESE_CHINA.zhs16gbkC:\>sqlplus user/password@server1SQL> delete t1;已删除4行。SQL> insert into t1 values('昇大案');已创建 1 行。SQL> insert into t1 values('喆');已创建 1 行。SQL> insert into t1 values('喆2');已创建 1 行。SQL> insert into t1 values('喆 ');已创建 1 行。SQL> insert into t1 values('大 ');已创建 1 行。SQL> select c2,length(c2) from t1;C2                   LENGTH(C2)
    -------------------- ----------
    ?大案                        3
    ?                            1
    ?2                           2
    ?                            2
    大                            2SQL> select c2||'#',trim(c2)||'#' from t1;C2||'#'                TRIM(C2)||'#'
    ---------------------- ----------------------
    ?大案#                ?大案#
    ?#                    ?#
    ?2#                   ?2#
    ? #                   ?#
    大 #                   大#
      

  7.   

    zhs16CGB231280是
    ZHS16GBK的子集,只要把客户WEB SERVER上的字符集改为就可以了,
    在注册表的SOFTWARE/ORACLE中。
      

  8.   

    感谢各位的认真对待,还有一些疑问
    请bluerc()、bobfang(匆匆过客)及其他高手看一下现在将Web Server的oracle客户端字符集设为
    AMERICAN_AMERICA.zhs16CGB231280   insert时就报错了
    ORA-01756: quoted string not properly terminated
    如果将Web Server的oracle客户端字符集设为
    SIMPLIFIED CHINESE_CHINA.zhs16gbk insert时不报错
    但显示出来时就变成??了oracle服务器段字符集为AMERICAN_AMERICA.zhs16CGB231280