LEFT OUTER JOIN causes ORA-03113: end-of-file on communication channel
530128Sep 8 2006 — edited Sep 8 2006I encounter this error on a very simple LEFT JOIN. Here's the test:
--
drop user mdb2 cascade;
create user mdb2 identified by mdb2;
grant resource, create session to mdb2;
--
connect mdb2/mdb2;
--create 2 tables:
create table x1 (n number primary key);
create table x2 (n number primary key);
-- add FK from X2 to X1
ALTER TABLE x2 ADD ( FOREIGN KEY (N) references x1);
-- Try to display tables hierarchy:
select rpad('.', (level-1)*2,'.') || c1.table_name as CHILD
from user_constraints c1, user_constraints c2
where
c1.r_constraint_name = c2.constraint_name (+)
and c1.r_owner = c2.owner (+)
connect by prior c1.table_name = c2.table_name ;
--It gives this result, as expected: (X2 is child of X1):
CHILD
--------
X2
X2
X1
..X2
But instead of using (+) I want to use the LEFT OUTER JOIN:
select rpad('.', (level-1)*2,'.') || c1.table_name as CHILD
from user_constraints c1 left outer join user_constraints c2
on (c1.r_constraint_name = c2.constraint_name and c1.r_owner = c2.owner)
connect by prior c1.table_name = c2.table_name ;
This gives this error:
ORA-03113: end-of-file on communication channel
Same problem with either LEFT JOIN or LEFT OUTER JOIN.
There are only 2 tables and 1 FK. There are not that many rows to cause this kind of error.
I am on 10.1.0.2.0, Linux.
Any ideas?
Thanks