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.
精彩评论