导入数据报错:ORA-01756: quoted string not properly terminated

  • Post author:
  • Post category:其他




导入数据报错:ORA-01756: quoted string not properly terminated

在Windows下导入一个SQL脚本,有中文字符,报错:

ERROR: ORA-01756: quoted string not properly terminated

中文字符都是乱码,肯定是字符集的问题,检查数据库字符集:

数据库的字符集:


SQL> select * from v$nls_parameters where parameter in
  2    ( 'NLS_LANGUAGE','NLS_TERRITORY','NLS_CHARACTERSET');

PARAMETER                                                        VALUE
---------------------------------------------------------------- ----------------------------------------------------------------
NLS_LANGUAGE                                                     AMERICAN
NLS_TERRITORY                                                    AMERICA
NLS_CHARACTERSET                                                 ZHS16GBK

Executed in 0.079 seconds

会话的字符集

SQL> select * from nls_session_parameters  where parameter in
  2    ( 'NLS_LANGUAGE','NLS_TERRITORY','NLS_CHARACTERSET') ;

PARAMETER                                                    VALUE
------------------------------------------------------------ --------------------------------------------------------------------------------
NLS_LANGUAGE                                                 AMERICAN
NLS_TERRITORY                                                AMERICA

Executed in 0.111 seconds

未显示字符集,去注册表查看:

NLS_LANG=AMERICAN _ AMERICA. UTF8


原因:就是服务器端和客户端的字符集UTF8和ZHS16GBK不一致,导致的字符问题。


解决方法:


在Windows的cmd环境下:

set nls_lang=american_america.ZHS16GBK

执行导入SQL脚本,导入正常。



版权声明:本文为qq_39065491原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。