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

表象

数据库中汉字显示为乱码

原因

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

shell

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是无法显示和处理中文的。

操作如下:

shell

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

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

查看更新后的值:

shell

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

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


来源: Transcendent
文章作者: Gavin Wang
文章链接: 修改oracle字符集(汉字显示为乱码) | Transcendent
本文章著作权归作者所有,任何形式的转载都请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值