个人技术分享

前提: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.ZHS16GBK

C:\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'

结束