在Sqlplus中直接插入数据或执行sql脚本文件,有时会出现中文乱码的问题,出现这种情况一般是因为Oracle客户端和服务端的字符集不一致导致的,也就是NLS_LANG环境变量和Oracle服务器端的字符集不同。
出现这种情况,可以通过修改服务端的字符集或修改NLS_LANG环境变量的值来解决,修改服务端的配置比较复杂,我一般通过设置环境变量的方法。
1、首先查看Oracle服务端的字符集
SQL > select userenv('language') from dual;
AMERICAN_AMERICA.ZHS16GBK
2、设置环境变量
[oracle@ ~]$ export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
3、登录sqlplus执行插入语句或导入sql脚本文件
SQL > @filename.sql