玩命加载中 . . .

修改oracle字符集(汉字显示为乱码)


表象

数据库中汉字显示为乱码

原因

安装数据库时,如果字符集选择错误,会导致汉字显示为乱码。

SQL> select value$ from props$ where  name='NLS_LANGUAGE' or     name='NLS_TERRITORY' or     name='NLS_CHARACTERSET';

VALUE$
--------------------------------------------------------------------------------
SIMPLIFIED CHINESE
CHINA
WE8MSWIN1252

解决方法

在dbca中以现成的模板General Purpose(一般都是选这个模板)创建的databae,其字符集默认是 WE8ISO8859P1 ,并且在dbca中没有找到修改字符集设置的地方。WE8ISO8859P1是无法显示和处理中文的。

操作如下:

以sqlplus "/as sysdba"登录,执行如下更新:

update sys.props$ set VALUE$='ZHS16GBK' where name='NLS_CHARACTERSET';

查看更新后的值:

select * from sys.props$ where NAME='NLS_CHARACTERSET';

此属性重启数据库后生效,如果已经执行了应用脚本,请重新执行应用脚本,这样才不会出现乱码。


文章作者: Gavin Wang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Gavin Wang !
  目录