Oracle字符集检查和修改
在部署重构版测试环境时,需要创建Oracle数据库,使用dbca创建数据库之后没有注意数据库本身的字符集,导致后续所有的数据库脚本执行后中文乱码。最后的解决办法是清掉全库数据,再修改字符集,重启数据库。
1、Oracle字符集概述
系统或者程序运行的环境就是一个我们常见的locale。而设置数据库locale最简单的方法就是设置NLS_LANG这个环境参数。在linux中NLS_LANG是一个环境变量,在windows中NLS_LANG是写在注册表中的。NLS_LANG这个参数由三个组成部分,分别是语言(language), 区域(territory)和字符集(character set),格式如下:
NLS_LANG = language_territory.charset
我们平时最常见的就是:AMERICAN_AMERICA.ZHS16GBK
和SIMPLIFIED CHINESE_CHINA.ZHS16GBK
NLS_LANG的作用官网是这样说的:
- It sets the language and territory used by the client application and the database server. It also sets the client's character set, which is the character set for data entered or displayed by a client program
意思就是说: