最近总是碰到和SQL有关的bug。今天又碰到了一个。
ITPUB个人空间rgK(@{Y后台错误信息为:ORA-00600: internal error code, arguments: [qcscpqbc1], [4], [2], [], [], [], [], []
到Metalink上查询了一下,发现问题居然和标准SQL写法有关:Note:3087290.8:Bug 3087290 - OERI[qcscpqbc1] possible from ANSI join。
查看了一下bug的信息,和碰到问题的SQL一样都是FULL JOIN造成的。
而且发现即使对这个SQL进行EXPLAIN都会出错。看来问题不是执行时候出现的,而是在生成执行计划的时候出现的。
尝试将FULL JOIN改变为LEFT OUTER JOIN或RIGHT OUTER JOIN问题不在出现。将FULL JOIN改变为FULL OUTER JOIN,问题依旧。
现在基本上可以确定是FULL JOIN导致的问题。
这个bug确认影响的版本是9205,看来9204也会出现这个错误。这个问题在9206被fixed。
如果不通过打补丁的方式,那么只能通过修改SQL语句的方式来避免FULL JOIN。