今天我在自己的电脑上面使用sqlplus登录远程oracle,然后将sql文件导入远程数据库的表中,在成功导入之后去相应表中查看导入的数据发现乱码,于是去网上查找到了解决办法,现在将解决办法记录下来。
1、首先产生问题的原因是,自己电脑环境变量NLS_LANG的值和数据库字符集不一致就造成了导入之后数据是乱码的问题。
2、解决办法就是将自己电脑的环境变量NLS_LANG的值改成和数据库字符集一样的编码。
3、具体操作步骤:
(一):查看本地环境变量
echo %NLS_LANG%;
(二):查看数据库字符集
select userenv('language') from dual;
(三):修改环境变量NLS_LANG的值
修改电脑的环境变量NLS_LANG的值:
windows系统: set NLS_LANG=数据库字符集如SIMPLIFIED CHINESE_CHINA.ZHS16GBK;
liunx系统:export NLS_LANG=数据库字符集如SIMPLIFIED CHINESE_CHINA.ZHS16GBK;
经过上面3个步骤之后,再次导入sql文件之后,查看数据发现一切正常。还要注意的一点是这种方式是临时修改,本地登录退出后将失效。