Oracle
 sql >> Datenbank >  >> RDS >> Oracle

ORACLE 12.2.01 Auswählen von Spalten aus verschiedenen Tabellen mit ähnlichen Namen --> Interne Spaltenkennung verwendet

Laut Oracle (DocId 2658003.1) geschieht dies, wenn drei Bedingungen erfüllt sind:

  1. ANSI-Beitritt
  2. UNION / UNION ALLE
  3. dieselbe Tabelle erscheint mehr als einmal in der Abfrage

Anscheinend wird "QCSJ_C" intern verwendet, wenn Oracle Joins im ANSI-Stil umwandelt.

BEARBEITEN:

Minimalbeispiel gefunden:

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

Es kann behoben werden, indem entweder eine Nicht-ANSI-Join-Syntax verwendet wird:

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

Oder, vorzugsweise durch die Verwendung von Spaltennamen anstelle von * :

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