SQL> select sysdate from dual;SYSDATE
--------------
06-1?  -11SQL> select userenv('LANGUAGE') DU from dual ;DU
------------------------------------------------SIMPLIFIED CHINESE_CHINA.US7ASCII而我的注册码是这样子的:
KEY_OraDB11G_home1
  NLS_LANG       SIMPLIFIED CHINESE_CHINA.ZHS16GBK
KEY_OraDB11G_home2
  NLS_LANG       SIMPLIFIED CHINESE_CHINA.ZHS16GBK
请问如何解决这个乱码问题呢

解决方案 »

  1.   

    select * from nls_database_parameters; 
    看下数据库的编码,如果数据库的编码错误,也会出现乱码
      

  2.   

    你使用plsql执行的吗?这个和你的客户端的字符集有关。
      

  3.   

    我的环境是WINDOWS 
    我是在SQL/PLUS 操作
    select * from nls_database_parameters where parameter = 'NLS_CHARACTERSET'PARAMETER                                        VALUE
    ---------------                              -------------------------
    NLS_CHARACTERSET                               US7ASCII
    我的注册码吗是:
    KEY_OraDB11G_home1
      NLS_LANG       SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    KEY_OraDB11G_home2
      NLS_LANG       SIMPLIFIED CHINESE_CHINA.ZHS16GBK
      

  4.   

    --这样试试
    select to_char(sysdate,'yyyy-mon-dd', 'NLS_DATE_LANGUAGE = ''SIMPLIFIED CHINESE''') from dual
      

  5.   

    我的环境是WINDOWS  
    我是在SQL/PLUS 操作
    select * from nls_database_parameters where parameter = 'NLS_CHARACTERSET'PARAMETER VALUE
    --------------- -------------------------
    NLS_CHARACTERSET US7ASCII
    我的注册码吗是:
    KEY_OraDB11G_home1
      NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    KEY_OraDB11G_home2
      NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    我的环境是WINDEOWS
    登录模式: SQL/PLUS
    现在就是注册码和 我SQL/PLUS 里面不一样
    在SQL/PLUS 操作
    select sysdate from dual;SYSDATE
    --------------
    06-1? -11
      

  6.   

      a.查询服务器端配置的字符集。在sqlplus中以dba用户执行:   
      select tab1.aa||'_'||tab2.bb||'.'||tab3.cc from (select VALUE$ aa from sys.props$ where name='NLS_LANGUAGE')tab1,(select VALUE$ bb from sys.props$ where name='NLS_ISO_CURRENCY')tab2,(select VALUE$ cc from sys.props$ where name='NLS_CHARACTERSET')tab3;   
        
      b.在客户端的注册表HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0中,如无系统变量NLS_LANG,则“新建”->“字符串”,重命名为“NLS_LANG”,并赋值为上述查询变量的值(注意引号内的字符应大写),再查看时不需要重启Oracle。
      

  7.   

    SQL*Plus: Release 11.1.0.6.0 - Production on Thu Jan 6 15:01:07 2011Copyright (c) 1982, 2007, Oracle.  All rights reserved.Enter user-name: SYS AS SYSDBA
    Enter password:Connected to:
    Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Productio
    With the Partitioning, OLAP, Data Mining and Real Application TestingSQL> select sysdate from dual;SYSDATE
    ---------
    06-JAN-11SQL> select * from nls_database_parameters;PARAMETER                      VALUE
    ------------------------------ --------------------------------------
    NLS_LANGUAGE                   AMERICAN
    NLS_TERRITORY                  AMERICA
    NLS_CURRENCY                   $
    NLS_ISO_CURRENCY               AMERICA
    NLS_NUMERIC_CHARACTERS         .,
    NLS_CHARACTERSET               US7ASCII
    NLS_CALENDAR                   GREGORIAN
    NLS_DATE_FORMAT                DD-MON-RR
    NLS_DATE_LANGUAGE              AMERICAN
    NLS_SORT                       BINARY
    NLS_TIME_FORMAT                HH.MI.SSXFF AMPARAMETER                      VALUE
    ------------------------------ --------------------------------------
    NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM
    NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR
    NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR
    NLS_DUAL_CURRENCY              $
    NLS_COMP                       BINARY
    NLS_LENGTH_SEMANTICS           BYTE
    NLS_NCHAR_CONV_EXCP            FALSE
    NLS_NCHAR_CHARACTERSET         AL16UTF16
    NLS_RDBMS_VERSION              11.1.0.6.020 rows selected.
    这是执行的效果,本人都快要搞疯掉了