Secondo Oracle (DocId 2658003.1), ciò accade quando vengono soddisfatte tre condizioni:
- Aderisci ad ANSI
- UNIONE/UNIONE TUTTI
- la stessa tabella compare più di una volta nella query
Apparentemente, "QCSJ_C" viene utilizzato internamente quando Oracle trasforma i join in stile ANSI.
MODIFICA:
Trovato un esempio minimo:
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
Può essere risolto utilizzando la sintassi di join non ANSI:
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
Oppure, preferibilmente utilizzando i nomi delle colonne invece di *
:
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