ORA-00918: column ambiguously defined (colonne définie de façon ambiguë)
OracleQue signifie cette erreur ?
Une colonne portant le même nom existe dans plusieurs tables de la requête et, comme elle est utilisée sans préfixe de table/d'alias, Oracle ne peut pas déterminer à quelle table elle appartient.
Cause
Les deux tables jointes ont une colonne de même nom (par ex. ID dans les deux) ; la colonne est utilisée sans qualification (sans préfixe) dans SELECT, WHERE ou ORDER BY.
Comment la corriger
Qualifiez chaque colonne ambiguë avec le nom de la table ou l'alias : SELECT a.id, b.id FROM tableA a JOIN tableB b ON a.id = b.a_id; Donnez aux tables des alias courts et préfixez toutes les colonnes pour améliorer la lisibilité et la clarté.
Autres entrées pour ce moteur
- ORA-02291integrity constraint violated - parent key not found (contrainte d'intégrité violée : clé parente introuvable)
- ORA-02292integrity constraint violated - child record found (contrainte d'intégrité violée : enregistrement enfant trouvé)
- ORA-00979not a GROUP BY expression (n'est pas une expression GROUP BY)
- ORA-06550line/column PLS-... PL/SQL compilation error (erreur de compilation PL/SQL)
- ORA-04068existing state of packages has been discarded (l'état existant des packages a été supprimé)
- ORA-01427single-row subquery returns more than one row (une sous-requête mono-ligne renvoie plusieurs lignes)
- ORA-12899value too large for column (valeur trop grande pour la colonne)