Ifølge Oracle (DocId 2658003.1) sker dette, når tre betingelser er opfyldt:
- ANSI-tilmelding
- UNION / UNION ALLE
- den samme tabel vises mere end én gang i forespørgslen
Tilsyneladende bruges "QCSJ_C" internt, når Oracle transformerer ANSI-style joins.
EDIT:
Fandt et minimalt eksempel:
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 rettes ved enten at bruge ikke-ANSI join-syntaks:
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 ved at bruge kolonnenavne i stedet for *
:
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