为什么Oracle显示???对于像åäö这样的特殊角色

时间:2014-09-12 14:35:07

标签: oracle nls-lang

前段时间我的PL / SQL停止显示字符åäö

我已经尝试重新安装oracle_home_11g,PL / SQL清理了注册表但问题仍然存在。

picture1 picture2

任何人都知道为什么?

1 个答案:

答案 0 :(得分:3)

很可能是由于特定于语言环境的NLS字符集数据库字符集之间的不匹配。或者, NLS_LANG 值未在 OS环境变量中正确设置。

查看Why are junk values/special characters/question marks displayed on my client?

  1. 您的客户端字符集与数据库字符集不匹配。
  2. 您可以比较:

    -- locale-specific characterset
    
    select value
    from   v$nls_parameters 
    where  parameter = 'NLS_CHARACTERSET';
    
    
    -- database characterset
    
    select value
    from   nls_database_parameters 
    where  parameter = 'NLS_CHARACTERSET';
    

    如果您发现两者之间不匹配,则将特定于语言环境的NLS字符集设置为数据库字符集的字符集。

    1. 如果上述字符匹配,则需要在OS环境变量中设置NLS_LANG值。
    2. 对于Windows操作系统,格式为:

      [NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]
      

      按照有关设置NLS_LANG的文档中的说明进行操作:Setting the NLS_LANG Environment Variable for Oracle Databases