sql >> Databáze >  >> RDS >> Oracle

ORACLE 12.2.01 výběr sloupců z různých tabulek s podobnými názvy --> použitý interní identifikátor sloupce

Podle společnosti Oracle (DocId 2658003.1) k tomu dochází, když jsou splněny tři podmínky:

  1. Připojení k ANSI
  2. UNIE/UNIE VŠECHNY
  3. stejná tabulka se v dotazu objeví více než jednou

"QCSJ_C" se zjevně používá interně, když Oracle transformuje spojení ve stylu ANSI.

EDIT:

Nalezen minimální příklad:

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

Lze to opravit buď pomocí syntaxe spojení bez 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

Nebo nejlépe pomocí názvů sloupců místo * :

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. PHP mysqli Insert nefunguje, ale nedává žádné chyby

  2. Zřetězení pole souvisejícího s více řádky záznamu v sadě dotazu v Django

  3. jaká je užitečnost typu pole?

  4. SQL:Najděte další řádek v klauzuli where s ID