在VMware 7.0 中安装了rhel 5.5 和 oracle 11g R2,但在用启动oracle的时候遇到如下的显示问题,请高手帮忙看看,是什么地方没有设置好
sqlplus /nologSQL*Plus: Release 11.2.0.1.0 Production on Thu May 6 13:54:03 2010Copyright (c) 1982, 2009, Oracle.  All rights reserved.SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.Total System Global Area  422670336 bytes
Fixed Size                  1336960 bytes
Variable Size             260049280 bytes
Database Buffers          155189248 bytes
Redo Buffers                6094848 bytes
????????
????????
SQL> show tables;
SP2-0158: ??? SHOW ?? "tables"
SQL> shutdown immediate  
????????
????????
ORACLE ???????
SQL> quit
? Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options ??oracle的字符集为:select userenv('language') from dual;USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.AL32UTF8linux的语言环境为:
LANG="zh_CN.UTF-8"SecureCRT 的语言坏境也是:UTF-8但还是会出现上面的:??

解决方案 »

  1.   


    这个是客服端的字符集问题造成的。 5.3客户端字符集设置方法
         1)UNIX环境
             $NLS_LANG=“simplified chinese”_china.zhs16gbk
             $export NLS_LANG
             编辑oracle用户的profile文件
        2)Windows环境
             编辑注册表
             Regedit.exe ---》 HKEY_LOCAL_MACHINE ---》SOFTWARE ---》 ORACLE-HOME  或者在窗口设置:        set nls_lang=AMERICAN_AMERICA.ZHS16GBK Oracle 字符集的查看和修改:
    http://blog.csdn.net/tianlesoftware/archive/2009/12/02/4915223.aspx
    ------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    DBA1 群:62697716(满); DBA2 群:62697977
      

  2.   

    看了你给了连接的文章,查询了一下,我的server端的字符集是:SIMPLIFIED CHINESE_CHINA.AL32UTF8在oracle用户的.bash_profile文件中添加了:NLS_LANG=“simplified chinese”_china.zhs16gbk
    export NLS_LANG为何还是会出现??,还有什么地方没有设置好吗?
      

  3.   


    要解决这个问题有两种方法一个是,利用INTERNAL_USE 关键字修改区域设置,还有一个是利用re-create,但是re-create有点复杂,所以请用internal_use,SQL>SHUTDOWN IMMEDIATE;SQL>STARTUP MOUNT EXCLUSIVE;SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;SQL>ALTER DATABASE OPEN;SQL>alter database national character set internal_use utf8;SQL>alter database character set internal_use zhs16gbk;SQL>SHUTDOWN immediate;SQL>startup;如果按上面的做法做,National charset的区域设置就没有问题2、修改dmp文件字符集上文说过,dmp文件的第2第3字节记录了字符集信息,因此直接修改dmp文件的第2第3字节的内容就可以‘骗’过oracle的检查。
    这样做理论上也仅是从子集到超集可以修改,但很多情况下在没有子集和超集关系的情况下也可以修改,我们常用的一些字符集,
    如US7ASCII,WE8ISO8859P1,ZHS16CGB231280,ZHS16GBK基本都可以改。因为改的只是dmp文件,所以影响不大。具体的修改方法比较多,最简单的就是直接用UltraEdit修改dmp文件的第2和第3个字节。比如想将dmp文件的字符集改为ZHS16GBK,可以用以下SQL查出该种字符集对应的16进制代码:   
    SQL> select to_char(nls_charset_id('ZHS16GBK'), 'xxxx') from dual;0354然后将dmp文件的2、3字节修改为0354即可。如果dmp文件很大,用ue无法打开,就需要用程序的方法了
      

  4.   

    谢谢各位高手的回答。
    该问题解决了
    在oracle用户的.bash_profile文件内增加一个NLS_LANG=AMERICAN,就可以了!!