前提:SQL文件打开其中中文字符是正常显示,保证导出文件中文字符正常。通过sqlplus命令@导入SQL文件出现乱码,这是因为客户端跟数据库的字符集不一致导致出现乱码问题。
要SQL导入的中文正常,要确保执行导入命令的客户端字符编码跟数据库的一致。
一、查询数据库编码格式
通过下面的SQL可以检查数据库编码格式
Select userenv('language') from dual;
查询结果如下:
SQL> Select userenv('language') from dual;USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
二、查询客户端编码格式
1.Windows操作系统,在cmd控制台使用下面命令查询
echo %NLS_LANG%
查询结果如下
C:\Users\admin>echo %NLS_LANG%
SIMPLIFIED CHINESE_CHINA.ZHS16GBKC:\Users\admin>
2.Linux操作系统,使用下面命令查询
echo $NLS_LANG
查询结果如下
root@master:/# echo $NLS_LANG
AMERICAN_AMERICA.AL32UTF8
root@master:/#
三、修改客户端编码
windows操作系统
# 临时设置当前cmd窗口有效SET NLS_LANG=AMERICAN_AMERICA.AL32UTF8
Linux操作系统
# 临时设置当前账号会话export NLS_LANG='AMERICAN_AMERICA.AL32UTF8'