还是环境变量设置的问题,OEM Console是从bin目录下的一个oemapp.bat文件启动的,查看这个文件但是无法确知系统使用的是注册表中哪个nls_lang参数。但是你可以用一下几种方式来测试:
1、把所有NLS_LANG都改称AMERICAN_AMERICA.US7ASCII
2、直接在系统环境变量中加入NLS_LANG=AMERICAN_AMERICA.US7ASCII,据我所知,系统变量是优先于注册表的
3、或者修改oemapp.bat,加入一句SET NLS_LANG=AMERICAN_AMERICA.US7ASCII

解决方案 »

  1.   

    有两种模式处理多国语言:   1. 数据库字符集设置成UTF8或者 AL32UTF8(9i以上支持)
          
           什么情况下使用?          PL/SQL和JAVA代码需要移植          已经存在使用多国语言的数据
                    
              SQL代码,PL/SQL代码中包含Unicode编码的数据
                    
             准备用BLOB类型来存储使用多国语言的文档,并且准备使用全文搜索.   2. 数据库字符集不变,使用unicode datatype(NCHAR,NVARCHAR2,NCLOB).       什么情况下使用?          将来,可能会支持多国语言
                    
              创建打包的应用程序
                    
              使用单字节类型的字符集(ASCII)作为数据库字符集时,可以获得更好的性能
                    
              需要对windows客户提供utf-16的支持.
      建议: 根据你具体的应用模式进行合理选择.    
      

  2.   

    To:mosaic(影子)
        客户单位的所有数据库都用US7ASCII,用ZHS16GBK的话捣腾起数据来肯定有麻烦。To:KingSunSha(弱水三千)
        方法1、2我试了,没起作用;方法3我不知道具体在什么位置加,试着加在了“start2”节的一大堆SET前,然后独立启动OEM Console,连接数据库时提示我未知字符集。To:leecooper0918(爱一个人好难)
        谢谢。我现在只是想正常使用US7ASCII。
      

  3.   

    检查一下 $ORACLE_HOME\sysman\config 这个目录下是否有
     dbappscfg.properties这个文件.  修改一下(我记得针对sqlplus worksheet有效,对oem console没试过)  #SQLPLUS_NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
     去掉注释符,改成: SQLPLUS_NLS_LANG=AMERICAN_AMERICA.US7ASCII 
      

  4.   

    试试放在
    :startNT
    set ADMIN_WRL=C:\oracle\ora92\sysman\admin
    两行之间。不过我从来没有用oem console来处理表纪录,而且我这边没有US7ASCII的库,所以没有办法具体测试。抱歉