Oracle :修改数据库服务器字符集

时间:2023-02-12 15:40:25

最近,有现场反应,程序显示乱码。感觉很奇怪,该系统已经卖出去无数了。肯定是现场数据库字符集有问题,经过查看,

现场环境:

window系统,oracle10g。

Oracle :修改数据库服务器字符集

Oracle :修改数据库服务器字符集

我们要求的数据库字符集是AL32UTF8的,而现场自己安装成ZHS16GBK。

并且,数据库的表里面,中文是乱码,如???(这才是造成程序显示乱码的主要原因,后面详述)

当时一心以为:既然情况如此,只能期望通过调整数据库字符集,来解决乱码问题。虽然查阅了资料说,不建议这样做;

修改数据库服务器字符集步骤如下:

Oracle :修改数据库服务器字符集

Oracle :修改数据库服务器字符集

Oracle :修改数据库服务器字符集

还别说,表里面原来中文是乱码的,现在还真的能正确显示了。

但系统以前中文正常显示的地方现在却是乱码,找不到问题原因。

后来,现场重新安装了数据库实例,字符集是AL32UTF8的,但通过pl/sql导入的带中文的初始脚本,

表里面还是显示乱码。最后经过查找资料,是oracle客户端字符集有问题,导致插入数据库表中文乱码。

设置window系统环境变量:NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK ,问题解决。

总结:

1.问题原因没真正明白,就直接下结论。其实,在调整数据库字符集前,可能设置客户端字符集问题就可以解决了。目前已经无法验证了。

2.修改数据库服务器字符集确实不值得推荐。