分享

Linux 下执行sql脚本 中文乱码问题

 AlPacido 2011-09-08
中文乱码一直都是让大陆程序员闹心的问题,今天不巧让我碰到了。把解决办法贴出来,和大家分享~
操作系统:LinuxRedHat6(已安装中文包,支持中文显示以及中文版操作系统界面);
数据库:oracle11gR2
问题:在编写数据库初始化脚本时,中文部分插入数据库全是乱码。
解决办法:
保证sql脚本格式的正确性:
1、大多数童鞋都是在windows下编辑sql脚本的,所以,在保存时请选择UTF-8 无BOM编码格式。我使用的编辑工具是Ultral Edit.
更改Oralce环境变量:
2、登录Linux,进入oracle用户,编辑/home/oracle/.bash_profile文件
#vi /home/oracle/.bash_profile;
在最后一行添加:
export NLS_LANG="Simplified Chinese_CHINA.AL32UTF8"
AL32UTF8是根据你的oracle数据库字符集填写的。
之后重新编译.bash_profile文件或者重新登录
#source /home/oracle/.bash_profile;(重新编译的方式,执行这段代码)
验证一下吧:#echo $NLS_LANG;
如果是Simplified Chinese_CHINA.AL32UTF8就对了,这时候sqlplus进入oracle,查看中文还是执行带有中文的脚本就都可以啦~
 
查看数据库字符集sql语句:
SQL>select * from nls_database_parameters where parameter in('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');
其中:NLS_CHARACTERSET字段对应AL32UTF8,
SQL>select * from v$nls_parameters   ;
其中:NLS_LANGUAGE字段对应Simplified Chinese ,  NLS_TERRITORY对应CHINA。
 
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多