服务器上的sqlplus在执行定时更新SQL脚本时,中文出现乱码。一开始找错了问题方向:从SQL更新脚本处理的源头开始,先对windows下的编辑器生成的脚本文件做各种编码的尝试,然后又在vi编辑器里面进行字符编码(encoding)与文件编码(fileencoding)的各种调试。后来发现转了圈,不过并不算浪费时间,起码对字符编码多了一些了解。
我是通过如下的方法解决sqlplus执行SQL脚本出现的中文乱码问题:
1.生产环境中的字符集是UTF8,所以对于上传至服务器上的脚本都以'UTF8 without BOM'保存
2.查看Oracle的字符集编码:
www.2cto.com
1
SQL> select userenv('language') from dual;
2
3
USERENV('LANGUAGE')
4
5
----------------------------------------------------
6
7
AMERICAN_AMERICA.AL32UTF8
8
9
SQL>
3.修改Linux的NLS_LANG环境变量,修改Oracle指定的Linux用户下面“.base_profile”文件,加入如下:
1
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
4.执行.bash_profile,使环境变量设置生效,查看其值:
1
$ echo $NLS_LANG
2
3
AMERICAN_AMERICA.AL32UTF8
至此,此次中文乱码的问题得已解决。
本文标题:Linux环境使用sqlplus执行SQL脚本中文乱码处理,责任编辑:宏鹏,来源:武汉北大青鸟鲁广校区栏目,于01-26发布于北大青鸟鲁广校区。服务器上的sqlplus在执行定时更新SQL脚本时,中文出现乱码。一开始找错了问题方向:从SQL更新脚本处理的源头开始,先对windows下的编辑器生成的脚本文件做各种编码的尝试,然后又在vi编辑器里面进行字符编码(encoding)与文件编码(fileencoding)的各种调试。
预约将免费领取7天课程体验卡
只为您方便就学
专业老师24小时1对1学习指导
定制专属于你的专属学习方案
微信号:17740513250
微信号:17740513250