虚拟机中LINUX环境的oracle中文乱码的问题

来源:互联网 发布:怎么检查网络是否连接 编辑:程序博客网 时间:2024/06/05 13:22

前几天硬盘坏了,文件全部没了,系统和前后台的环境都需要重新配置和安装。这整个过程真是繁琐。

首先要安装虚拟机来搭建后台的环境。这个过程还是比较方便的。搭好后台之后则直接导入dmp文件,初始化oracle中的数据库。

前台使用PLSQL连接,结果查询的时候中文都变成????了。

一开始查oracle的字符集,发现oracle的字符集为NLS_LANG=AMERICAN_AMERICA.ZHS16GBK,是可以支持中文的。继续查linux下的编码,果然没有改。直接在.bash_profile中增加export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK,然后重启虚拟机。结果无论前后台查询都是???

后面,我又在windows的客户端增加环境变量NLS_LANG,值为AMERICAN_AMERICA.ZHS16GBK,再次重启电脑。查询出来还是???。这个真是百思不得其解。oracle中的编码也就数据库编码,服务器编码和客户端编码三部分。我全部改过之后,查看到的是数据库中的存储。难道是数据库中存储的就是乱码?清空库之后,重新插入数据,果然能够显示中文了。原因是一开始没有配置操作系统的字符集,导致导入数据的时候是以操作系统的字符集导入的,而实际的字符集是原oracle库中的字符集。结果就是导入数据库中的数据就是乱码,无论怎么改,都无法恢复中文的显示。

总结下来,我感觉做事情还是要清楚系统的原理。虽然现在的搜索引擎非常棒,但是有些事情还是要知其然,也要知其所以然。不然得到的永远是冰山一角,不能系统的把握原理。

0 0
原创粉丝点击