zoukankan      html  css  js  c++  java
  • oracle sqlplus执行sql语句字符集问题

      因为业务需要,现将一些包含中文的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格式,否则中文乱码。

  • 相关阅读:
    C++学习总结 复习篇2
    C++ 学习总结 复习篇
    Git 安装与使用
    前两周工作总结
    [bzoj1033] [ZJOI2008]杀蚂蚁antbuster
    [bzoj1031] [JSOI2007]字符加密Cipher
    [bzoj1030] [JSOI2007]文本生成器
    [bzoj1029] [JSOI2007]建筑抢修
    [bzoj1028] [JSOI2007]麻将
    [bzoj1026] [SCOI2009]windy数
  • 原文地址:https://www.cnblogs.com/chillax1314/p/9239500.html
Copyright © 2011-2022 走看看