客户端 服务器 都在linux下 64bit
NLS_LANG=AMERICAN_AMERICA.UTF8
test_tab表共两个字段 F1:NUMBER ,F2:vchar(300)
SQL:insert into test_tab (F1,F2) values (34334,'小面包中间一排座椅坏了,拆掉在去装新的路上就被罚款,郑州的交警真黑▒')
利用 OTL调用 OCI报错:ORA-01756: quoted string not properly terminated
用sqlplus直接执行,没有错误。。
十分晕倒,困扰我好久了了..."警真黑▒"黑后面的东东 是乱码,但是为什么在sqlplus 能插入??
期待 大牛的解答 
先谢过了

解决方案 »

  1.   

    直接执行不报错。
    otl是啥
      

  2.   

    OTL是一个封装 OCI的 C++库。
    ps:
    黑▒ 中后面的那个是合法的utf8编码。我查过了。用ultriedit打开。
    为:E9 BB 91 E2 96 92 编码上是utf8的
    去掉 “黑”后面的那团东西后
    直接在OTL执行insert into test_tab (F1,F2) values (34334,'小面包中间一排座椅坏了,拆掉在去装新的路上就被罚款,郑州的交警真黑') 成功。。期待 大牛的解答 
    先谢过了
      

  3.   

    Please set registry editor's path: "HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0" NLS_LANG'S VALUE IS "SIMPLIFIED CHINESE_CHINA.ZHS16GBK"