sql >> Database >  >> RDS >> Oracle

ORACLE 12.2.01 selecteren van kolommen uit verschillende tabellen met vergelijkbare namen --> interne kolom-ID gebruikt

Volgens Oracle (DocId 2658003.1) gebeurt dit wanneer aan drie voorwaarden wordt voldaan:

  1. ANSI doe mee
  2. UNIE / ALLEN UNIE
  3. dezelfde tabel komt meerdere keren voor in de zoekopdracht

Blijkbaar wordt "QCSJ_C" intern gebruikt wanneer Oracle ANSI-stijl joins transformeert.

BEWERKEN:

Een minimaal voorbeeld gevonden:

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

Het kan worden opgelost door ofwel niet-ANSI join-syntaxis te gebruiken:

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

Of, bij voorkeur door kolomnamen te gebruiken in plaats van * :

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. PostgreSQL 9.5 - decodeer / selecteer case om fout op te lossen met utf8 werkt niet

  2. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:communicatieverbinding mislukt

  3. Hoe maak ik een keuze uit Bulk Verzamelde tabel met records Type?

  4. MySql kan de bovenliggende rij niet bijwerken als ik ON UPDATE CASCADE heb