DBAtlas · Atlas für Datenbankbetrieb

ORA-00918: column ambiguously defined (Spalte mehrdeutig definiert)

Oracle

Was bedeutet das?

Eine Spalte mit demselben Namen existiert in mehr als einer Tabelle der Abfrage, und weil sie ohne Tabellen-/Alias-Präfix verwendet wird, kann Oracle nicht bestimmen, zu welcher Tabelle sie gehört.

Ursache

Beide verknüpften Tabellen haben eine gleichnamige Spalte (z. B. ID in beiden); die Spalte wird in SELECT, WHERE oder ORDER BY unqualifiziert (ohne Präfix) verwendet.

Lösung

Qualifiziere jede mehrdeutige Spalte mit Tabellennamen oder Alias: SELECT a.id, b.id FROM tableA a JOIN tableB b ON a.id = b.a_id; Gib Tabellen kurze Aliase und versieh alle Spalten mit Präfix, um Lesbarkeit und Klarheit zu verbessern.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank