Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ORACLE 12.2.01 wybieranie kolumn z różnych tabel o podobnych nazwach --> użyty wewnętrzny identyfikator kolumny

Według Oracle (DocId 2658003.1) dzieje się tak, gdy spełnione są trzy warunki:

  1. Dołącz do ANSI
  2. ZWIĄZEK / ZWIĄZEK WSZYSTKICH
  3. ta sama tabela pojawia się w zapytaniu więcej niż raz

Najwyraźniej "QCSJ_C" jest używany wewnętrznie, gdy Oracle przekształca złączenia w stylu ANSI.

EDYCJA:

Znalazłem minimalny przykład:

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

Można to naprawić za pomocą składni łączenia innych niż 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

Lub najlepiej używając nazw kolumn zamiast * :

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. APEX:Pobierz BLOB z tabeli tymczasowej

  2. Obracanie danych za pomocą dwóch kolumn

  3. Jak mogę zwrócić wiele identycznych wierszy na podstawie pola ilości w samym wierszu?

  4. „ORA-00942:tabela lub widok nie istnieje” tylko podczas uruchamiania w ramach procedury składowanej

  5. TO_char zwraca wartość ukośnika po konwersji liczby na String