ORA-00918: column ambiguously defined (Spalte mehrdeutig definiert)
OracleWas 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.
Weitere Einträge zu dieser Datenbank
- ORA-02291integrity constraint violated - parent key not found (Integritäts-Constraint verletzt: Elternschlüssel nicht gefunden)
- ORA-02292integrity constraint violated - child record found (Integritäts-Constraint verletzt: Kinddatensatz gefunden)
- ORA-00979not a GROUP BY expression (kein GROUP-BY-Ausdruck)
- ORA-06550line/column PLS-... PL/SQL compilation error (PL/SQL-Kompilierfehler)
- ORA-04068existing state of packages has been discarded (bestehender Package-Zustand wurde verworfen)
- ORA-01427single-row subquery returns more than one row (einzeilige Unterabfrage liefert mehr als eine Zeile)
- ORA-12899value too large for column (Wert zu groß für Spalte)