ORA-600(qerrmOStart2)(1756)错误

客户数据库出现ORA-600(qerrmOStart2)(1756)错误。

ORA-600(qerrmOStart2)错误:http://yangtingkun.itpub.net/post/468/527461

 

 

之前遇到过一次类似的qerrmOStart2错误,不过上次错误的第二个参数是1740。在上一篇文章中已经提到了,这个600错误只是一个表现,实际上真正的错误是第二个函数中体现的错误。

看一下具体的错误TRACE信息:

*** SERVICE NAME:(SYS$USERS) 2012-05-24 17:23:39.684
*** SESSION ID:(598.169) 2012-05-24 17:23:39.684
*** 2012-05-24 17:23:39.684
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [qerrmOStart2], [1756], [ORA-01756: quoted string not properly terminated
], [], [], [], [], []
Current SQL statement for this session:
SELECT count(*) FROM (  SELECT * FROM (
                    select i_t
交易编号,
        decode(type, '00500', '
退货'),
        am,
        decode(flag, 'S', '
成功', '失败')
   from usr1.t_1@db01
  where s_p = '3702491300'
    and o_i_t = 96924977
              ) t where rownum <= 3000 ) tt
----- Call Stack Trace -----
calling              call     entry                argument values in hex     
location             type     point                (? means dubious value)    
-------------------- -------- -------------------- ----------------------------
ksedst+001c          bl       ksedst1              000000000 ? FFFFFFFFFFF78A4 ?
ksedmp+0290          bl       ksedst               104A506E8 ?
ksfdmp+0018          bl       03F4BE78            
kgerinv+00dc         bl       _ptrgl              
kgesinv+0020         bl       kgerinv              FFFFFFFFFFF7BF0 ? 000000000 ?
                                                   10032BE9C ? 000000000 ?
                                                   000000000 ?
ksesin+006c          bl       kgesinv              000000000 ? 000000000 ?
                                                   FFFFFFFFFFF7C60 ? 1104B63E8 ?
                                                   11048EFB0 ?
OCIKSIN+0124         bl       ksesin               105383C74 ? 200000002 ?
                                                   000000000 ? 0000006DC ?
                                                   000000001 ? 000000031 ?
                                                   FFFFFFFFFFF7C64 ?
                                                   FFFFFFFFFFF7C94 ?
qerrmOStart+01d4     bl       03F49D20            
qerrmStart+0310      bl       qerrmOStart          000000001 ? 110471728 ?
                                                   110489E88 ?
selexe+09d0          bl       01FB6A3C            
opiexe+26fc          bl       selexe               110489E88 ? 700000917096A00 ?
                                                   102387EB0C8 ?
kpoal8+0edc          bl       opiexe               FFFFFFFFFFFB874 ?
                                                   FFFFFFFFFFFB4E8 ?
                                                   FFFFFFFFFFF9A48 ?
opiodr+0ae0          bl       _ptrgl              
ttcpip+1020          bl       _ptrgl              
opitsk+1124          bl       ttcpip               1100CB0D8 ? FFFFFFFFFFFB990 ?
                                                   000000001 ? 000000000 ?
                                                   FFFFFFFFFFFB910 ? 1100E0428 ?
                                                   000000000 ? 1104D0240 ?
opiino+0990          bl       opitsk               000000000 ? 000000000 ?
opiodr+0ae0          bl       _ptrgl              
opidrv+0484          bl       01FB7E64            
sou2o+0090           bl       opidrv               3C02AB90DC ? 440660000 ?
                                                   FFFFFFFFFFFF7B0 ?
opimai_real+01bc     bl       01FB5C2C            
main+0098            bl       opimai_real          000000000 ? 000000000 ?
__start+0098         bl       main                 000000000 ? 000000000 ?

--------------------- Binary Stack Dump ---------------------

SQL语句本身分析,并不存在任何的语法错误,所有的单引号都是匹配的,而这种600错误的产生本身也说明不是简单的普通错误。

观察到这个SQL是通过数据库链访问远端表,且SQL语句本身包含了中文,那么出现这个问题就不奇怪了。显然导致问题的原因在于两个数据库的字符集不同,Oracle在进行字符集转换的时候把某个中文错误的分解出了一个单引号,导致语法分析时报错。

避免这个错误的最行之有效的方法就是去掉多字节字符,对于当前的SQL语句而言,只需要替换所有的中文字符,就可以避免这个错误的产生。

 

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

转载于:http://blog.itpub.net/4227/viewspace-740731/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值