ITPub博客

首页 > 数据库 > Oracle > ORA-01756: quoted string not properly terminated

ORA-01756: quoted string not properly terminated

原创 Oracle 作者:yjjuff 时间:2015-07-07 16:33:58 0 删除 编辑

   dba经常使用sqlplus执行一些dml语句,字符集经常会困扰一些新手,上面出错案例报错信息解决一例,第一时间感觉是字符集问题,下面把问题重现一下。

创建测试表
 create table SHOP_CITY_AREA
(
  id        NUMBER(11),
  region_id VARCHAR2(6) not null,
  name      VARCHAR2(255) not null,
  orderby   NUMBER(11),
  parent    VARCHAR2(6),
  tier      NUMBER(6)
) 


插入记录
SQL> insert INTO shop_city_area(ID, REGION_ID, NAME, ORDERBY, PARENT, TIER) values(3223,'519003', '斗门在', 11111,'519001', 31111);
ERROR:
ORA-01756: quoted string not properly terminated

查看oracle字符集
SQL> SELECT * FROM NLS_DATABASE_PARAMETERS;
NLS_LANGUAGE                   AMERICAN
NLS_TERRITORY                  AMERICA
NLS_CURRENCY                   $
NLS_ISO_CURRENCY               AMERICA
NLS_NUMERIC_CHARACTERS         .,
NLS_CHARACTERSET               ZHS16GBK
NLS_CALENDAR                   GREGORIAN
NLS_DATE_FORMAT                DD-MON-RR
NLS_DATE_LANGUAGE              AMERICAN
NLS_SORT                       BINARY
NLS_TIME_FORMAT                HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY              $
NLS_COMP                       BINARY
NLS_LENGTH_SEMANTICS           BYTE
NLS_NCHAR_CONV_EXCP            FALSE
NLS_NCHAR_CHARACTERSET         AL16UTF16
NLS_RDBMS_VERSION              11.2.0.3.0


20 rows selected.


SQL> 



查看连接oracle工具SecureCRT字符集为utf8,上面oracle NLS_CHARACTERSET  为ZHS16GBK    NLS_CHARACTERSET 是字符集是客户端连接使用的字符集,GBK 和 UTF-8的位数不同所有
导致转换后不符合插入格式,解决办法有如下几个办法
第一个办法也是最简单的办法,改变
SecureCRT工具字符集为gbk,
第二个办法临时改变oracle环境变量。




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27252036/viewspace-1725757/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-10-11

  • 博文量
    29
  • 访问量
    267769