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格式,否则中文乱码。

  • 相关阅读:
    P2519 [HAOI2011]problem a
    P1084 疫情控制
    P1941 飞扬的小鸟
    NOIP填坑计划
    P2831 愤怒的小鸟
    AGC 16 D
    P3960 列队
    Python3爬虫相关软件,库的安装
    软件理论基础—— 第一章命题逻辑系统L
    软件理论基础——导论
  • 原文地址:https://www.cnblogs.com/chillax1314/p/9239500.html
Copyright © 2011-2022 走看看