Enligt Oracle (DocId 2658003.1) händer detta när tre villkor är uppfyllda:
- ANSI gå med
- UNION / UNION ALLA
- samma tabell visas mer än en gång i frågan
Tydligen används "QCSJ_C" internt när Oracle transformerar ANSI-style joins.
EDIT:
Hittade ett minimalt exempel:
SELECT * FROM dual d1 JOIN dual d2 ON d1.dummy=d2.dummy
UNION
SELECT * FROM dual d1 JOIN dual d2 ON d1.dummy=d2.dummy;
QCSJ_C000000000300000 QCSJ_C000000000300001
X X
Det kan fixas genom att antingen använda icke-ANSI join-syntax:
SELECT * FROM dual d1, dual d2 WHERE d1.dummy=d2.dummy
UNION
SELECT * FROM dual d1, dual d2 WHERE d1.dummy=d2.dummy;
DUMMY DUMMY_1
X X
Eller, helst genom att använda kolumnnamn istället för *
:
SELECT d1.dummy, d2.dummy FROM dual d1 JOIN dual d2 ON d1.dummy=d2.dummy
UNION
SELECT d1.dummy, d2.dummy FROM dual d1 JOIN dual d2 ON d1.dummy=d2.dummy;
DUMMY DUMMY_1
X X