通过PLSQL导入csv文件时出现乱码问题。
问题现象:从生产环境导入的csv文件,导入到测试环境数据库后发现同一列的数据有一部分是乱码,一部分是正常的。打开csv文件查看数据全部正常显示,无乱码;
问题解决:
第一步:先查看生产环境PLSQL客户端与本地的PLSQL字符编码是否一致,查询脚本为:
select userenv(‘language’) from dual;
如不一致可在本地配置环境变量使其一致,配置方法为:我的电脑->右键->系统属性->高级->环境变量->新建
变量名=NLS_LANG
变量值=AMERICAN_AMERICA.AL32UTF8
因为生产环境变量值是AMERICAN_AMERICA.AL32UTF8,所以我改成了一致;如果导入还是有乱码,请执行第二步;
第二步:将csv文件用UE打开,将字符编码改为utf-8,然后保存;新建一个excel文件->数据->自文本->选择保存后的csv文件导入到excel,分隔符选择逗号,导入完成后再另存为csv文件。
第三步:从新用plsql导入csv文件,成功导入。
注意:当导入的数据是乱码时可能占用的字符长度也会有变化,所以即使是同样的表结构导入时也可能会报字段长度不够之类的错误。