开发者

select statement give ora-03113 on Oracle 11

When I run next sql statement on Oracle 11g I got ora - 03113 but same statement run normal on oracle 10gr2 can any one help me on this issue

    SELECT /*+ INDEX_JOIN(b) */
           b.child_
      FROM tab1 b
START WITH b.child_ IN (
     SELECT /*+ INDEX_JOIN(c) */
            c开发者_运维问答.id
       FROM tab2 c
      WHERE c.id IN (SELECT /*+ INDEX_JOIN(d) */
                            d.id
                       FROM tab3 d
                      WHERE d.id2 = 'X'
                     UNION
                     SELECT 'X'
                       FROM DUAL))
CONNECT BY b.parent_ = PRIOR b.child_


ORA-03113 is one of Oracle's generic "server failure" errors. There should be a trace file in the USER_DUMP_DEST directory which contains diagnostic information. If you're unlucky there will be a core dump instead (in the CORE_DUMP_DEST directory). I say unlucky because it's harder to get a stack trace out of a core dump.

You may well need a DBA to help with access to these files and also in the interpretation.

ORA-03113 usually indicates a problem with the database's integrity, such as block or index corruption. So you may also need a DBA's assistance with resolving this matter.

In short, I think the people who voted to migrate this from ServerFault were wrong to do so.


I had the same problem with a query with Exists sub-query which support pagination. We identify the problem by re-writing the sub query to a simple one and then came a simple solution of changing the sub query select statement: instead of use tablename.*, we changed to only select the fields we need, tablename.id in our case. And the problem is solved.

Hope this helps.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜