oracle sqlplus执行sql语句字符集问题

您所在的位置:网站首页 sqlplus执行sql文件中文乱码 oracle sqlplus执行sql语句字符集问题

oracle sqlplus执行sql语句字符集问题

2024-07-13 22:36| 来源: 网络整理| 查看: 265

  因为业务需要,现将一些包含中文的insert语句导入到oracle数据库中,由于数据量比较大,通过pl/sql*plus导入时非常慢(实测1.5M的文件大概执行20分钟),现在oracle服务器sqlplus下执行,报错如下:

ERROR: ORA-01756: quoted string not properly terminated

  查询度娘说是字符集问题,随后查看数据库字符集

SQL> select userenv('language') from dual; USERENV('LANGUAGE') ---------------------------------------------------- AMERICAN_AMERICA.ZHS16GBK

  oracle用户当前字符集

echo $NLS_LANG AMERICAN_AMERICA.ZHS16GBK

  是一致的,说明是导入的sql文件有问题,解决方法如下:

先将sql文件通过notepad++转换为UTF-8-BOM编码模式,然后再转成gb2312格式保存

然后通过UltraEdit打开刚刚保存的gb2312格式的文件

修改为gbk格式,然后再保存,重新导入,不报错了,而且速度非常快,1.5M文件5秒钟执行完成。

总结:

  utf-8文件不能直接转成gbk格式,需要将UTF-8格式文件改为gb2312格式,然后再转成gbk格式,否则中文乱码。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3