数据库环境 Oracle10g 字符集AMERICAN_AMERICA.AL32UTF81.当客户端设置字符集为AMERICAN_AMERICA.ZHS16GBK      本地使用sqlplus执行数据库初始化脚本(创建数据表结构、插入数据)
      表注释、字段注释插入部分成功,部分不成功(ORA-01756: quoted string not properly terminated ),数据插入正常2.当客户端设置字符集为SIMPLIFIED CHINESE_CHINA.ZHS16GBK
      本地执行数据库初始化脚本(创建数据表结构、插入数据)
      表注释、字段注释插入部分成功,部分不成功(ORA-01756: 引号内的字符串没有正确结束  ),数据插入正常,如下两个SQL语句,第一个执行不成功,第二个执行成功:
comment on column A.refresh_time
  is '终端上报数据的时刻';
comment on column A.connection_status
  is '终端当前与通信服务器的连接状态,0:断开 1:连接';
3.当客户端设置字符集为AMERICAN_AMERICA.AL32UTF8      本地使用sqlplus执行数据库初始化脚本(创建数据表结构、插入数据)
      表注释、字段注释插入成功,数据插入部分成功,部分不成功(ORA-01756: quoted string not properly terminated )4.当客户端设置字符集为SIMPLIFIED CHINESE_CHINA.AL32UTF8
      本地执行数据库初始化脚本(创建数据表结构、插入数据)
      表注释、字段注释插入成功,数据插入部分成功,部分不成功(ORA-01756: 引号内的字符串没有正确结束  )如下两个SQL语句,第一个执行不成功,第二个执行成功
insert into A (ITEM_SORT_ID, ITEM_SORT_CODE, ITEM_SORT_NAME, P_ITEM_SORT_ID, CONTENT1, CONTENT2, CONTENT3)
values (4, '99999', '终端数据项', null, null, null, null);insert into A (ITEM_SORT_ID, ITEM_SORT_CODE, ITEM_SORT_NAME, P_ITEM_SORT_ID, CONTENT1, CONTENT2, CONTENT3)
values (5, '99991', '终端一般事件', 4, null, null, null);
我确定我的脚本(脚本文件都是UTF8格式的)没有问题,而且在PL/SQL Developer(第三方)工具下执行数据库初始化脚本,都是是成功的,可是公司给客户使用,不能用PL/SQL Developer,只能用sqlplus,那我现在怎么才能用sqlplus执行脚本,全部成功呢?请各位大侠多多指教……

解决方案 »

  1.   

    我碰上过这个问题,出现在sql文件里既有简体中文和繁体中文,并且数据库字符集是utf-8。
    修改的方法是用uestudio把文件的内容转为unicode格式,然后再另存为unicode格式
      

  2.   

    脚本中有中文吗?
    把脚本存成ZHS16GBK格式的,
    然后到中文系统客户端下,客户端设置字符集为SIMPLIFIED CHINESE_CHINA.ZHS16GBK,
    执行。
      

  3.   

    问题已经解决了,在客户端字符集为SIMPLIFIED CHINESE_CHINA.ZHS16GBK的前提下,我把脚步文件的UTF8编码格式修改为ANSI编码格式,然后在sqlplus下执行脚本就可以了