操作系统Windows
登录模式:SQL/PLUSOracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> conn US_ZHA/UUUUUU@ORACLEDB AS SYSDBA
已连接。SQL> SELECT USERENV('LANGUAGE') FROM DUAL;USERENV('LANGUAGE')
-------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBKSQL> SELECT * FROM PERSON;T1
----------
中国SQL> SELECT SYSDATE FROM DUAL;SYSDATE
--------------
07-1月 -11SQL> CONN US_ZHA/UUUUUU@WYL_ORCL AS SYSDBA
已连接。
SQL> SELECT USERENV('LANGUAGE') FROM DUAL;USERENV('LANGUAGE')
------------------------------------------SIMPLIFIED CHINESE_CHINA.US7ASCIISQL> SELECT *FROM PERSON;T1
--------------------
??
SQL> SELECT SYSDATE FROM DUAL;
SYSDATE
--------------
07-1?  -11
这是为什么会出现这种情形呢?

解决方案 »

  1.   

    @ORACLEDB和@WYL_ORCL是同一台机吗?默认字符集是一样的吗?
      

  2.   

    你在不同的客户端操作的吧,当然会不同了,
    请参考
    http://blog.csdn.net/Phoenix_99/archive/2010/12/05/6055557.aspx
      

  3.   

    连的都不是同一台server,比较也没有意义。
      

  4.   

    两个实例的字符集不一样啊,实例ORACLEDB的字符集是ZHS16GBK
    ,实例WYL_ORCL的字符集是US7ASCII。
      

  5.   

    操作是在同一台服务器上操作的,这台机器上有两个DB 一个系统自动建成的ORACLEDB 另一个是自己建立的。但是为什么会出现这种情况呢,这里没有客户端。听同事说,之前有操作过新建库之后生成一个文件为 databasename.bat 之后运行这个,再登录SQL/PLUS 就出现乱码了,难道乱码和这个文件有关系?
      

  6.   


    不同的实例 字符集不一样你这情况没什么可比的  要么统一成中文字符集 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
      

  7.   

    客户端字符集与服务器字符集不一样的原因。服务器端:两个数据库实例的字符集不同牙,实例ORACLEDB的字符集是ZHS16GBK,实例WYL_ORCL的字符集是US7ASCII。客户端:
    可以打开注册表看看
    HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\HOME0下nls_lang服务器和客户端一致或者兼容不会有乱码,不一致就出现乱码咯
    第二次连接前将nls_lang改成SIMPLIFIED CHINESE_CHINA.US7ASCII
    试试看
      

  8.   

    乱码问题。
    弄清楚了很简单
    http://hi.baidu.com/loveyurui/blog/item/d5b88b8076023882f603a6ac.html