研究、分享我学习零售业SAP的历程
------------打造中国第一个零售SAP博客
场景描述:如果操作系统默认语种是英文(如英文版 Windows Server 2003, Enterprise Edition)的情形下安装了 Oracle 10g,可能导致 Oracle 安装后的数据库在 Compiere 应用程序中正确显示和保存中文,但 SQL Plus 或 PL/SQL Developer 等第三方应用程序连接到数据库中会看到乱码。

原因分析:此问题的原因是 Oracle Home 的 NLS_LANG 语言设置为 AMERICAN_AMERICA.AL32UTF8,从而使得 SQL*Net 使用了不匹配的字符集所致。换言之,数据库服务器引擎没有问题。

解决方法:修改注册表 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1 下的 NLS_LANG 键值为操作系统当前默认语言即可(以简体中文为例:SIMPLIFIED CHINESE_CHINA.ZHS16GBK)。重新登录 SQL Plus 或 PL/SQL Developer 等第三方应用程序(无需重启数据库实例),即可显示和保存正确的中文字符。

其它说明:如果操作系统默认语种是与当前默认语言相同的最初情形下安装了 Oracle 10g,那么 Compiere 应用程序中的中文字符与 SQL Plus 或 PL/SQL Developer 等第三方应用程序连接到数据库中看到的中文字符均正确,不存在上述问题。Compiere 应用程序并不受此问题的干扰,可以完全正常使用。
posted on 2007-06-16 13:34  会东  阅读(508)  评论(0编辑  收藏  举报