sqlplus执行脚本 乱码_linux环境使用sqlplus执行SQL脚本中文乱码处理

某组服务器上的sqlplus在执行定时更新SQL脚本时,中文出现乱码。一开始找错了问题方向:从SQL更新脚本处理的源头开始,首先对windows下的编辑器生成的脚本文件做各种编码的尝试,然后又在vi编辑器里面进行字符编码(encoding)与文件编码(fileencoding)的各种调试。后来发现转了圈,不过并不算浪费时间,最起码对字符编码多了一些了解。

我是通过如下的方法解决sqlplus执行SQL脚本出现的中文乱码问题:

1.生产环境中的字符集全是UTF8,所以对于上传至服务器上的脚本都以'UTF8 without BOM'保存

2.查看Oracle的字符集编码:

SQL> select userenv('language') from dual;

USERENV('LANGUAGE')

----------------------------------------------------

AMERICAN_AMERICA.AL32UTF8

SQL>

3.修改Linux的NLS_LANG环境变量,修改Oracle指定的Linux用户下面“.base_profile”文件,加入如下:

export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"

4.执行.bash_profile,使环境变量设置生效,查看其值:

$ echo $NLS_LANG

AMERICAN_AMERICA.AL32UTF8

至此,此次中文乱码的问题得已解决。

推荐一篇文章,是介绍Vim 中与编码有关的四个选项的,如不是很清楚它们之间关系的可以访问以下网址读一下:

参考来源:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值