为什么Oracle显示???适用于åäö等特殊字符 [英] Why Oracle displays ??? for special characters like åäö
问题描述
前一段时间,我的PL/SQL停止显示字符åäö
.
Some time ago my PL/SQL stopped showing characters åäö
.
我尝试重新安装oracle_home_11g,PL/SQL清除了注册表,但问题仍然存在.
I've tried reinstalling oracle_home_11g, PL/SQL cleaned the registry but the problem remains.
有人知道为什么吗?
推荐答案
很可能是由于特定于语言环境的NLS字符集和数据库字符集之间的不匹配.否则,操作系统环境变量中的 NLS_LANG 值未正确设置.
Most probably it is due to the mismatch between the locale-specific NLS characterset and the database characterset. Or else, the NLS_LANG value is not correctly set in the OS environmental variable.
- 您的客户端字符集与数据库字符集不匹配.
您可以在以下之间进行比较:
You can compare between :
-- 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字符集设置为数据库字符集的字符集.
If you see a mismatch between the two, then set the locale-specific NLS characterset to that of database characterset.
- 如果上述字符集匹配,则需要在OS环境变量中设置NLS_LANG值.
对于Windows操作系统,格式为:
For Windows OS, the format is:
[NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]
按照文档中有关设置NLS_LANG的说明进行操作:设置NLS_LANG用于Oracle数据库的环境变量
Follow the instruction in the documentation regarding setting up the NLS_LANG : Setting the NLS_LANG Environment Variable for Oracle Databases
这篇关于为什么Oracle显示???适用于åäö等特殊字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!