ORA-00918: column ambiguously defined
OracleO que significa?
Existe uma coluna com o mesmo nome em mais de uma tabela da consulta e, como ela é usada sem prefixo de tabela/alias, o Oracle não consegue determinar a qual tabela ela pertence.
Por que acontece?
Ambas as tabelas do join têm uma coluna com o mesmo nome (por exemplo, ID nas duas); a coluna é usada sem qualificação (sem prefixo) no SELECT, WHERE ou ORDER BY.
Como resolver
Qualifique toda coluna ambígua com o nome ou o alias da tabela: SELECT a.id, b.id FROM tableA a JOIN tableB b ON a.id = b.a_id; Dê aliases curtos às tabelas e prefixe todas as colunas para melhorar a legibilidade e a clareza.
Mais entradas deste banco
- ORA-02291integrity constraint violated - parent key not found
- ORA-02292integrity constraint violated - child record found
- ORA-00979not a GROUP BY expression
- ORA-06550line/column PLS-... PL/SQL compilation error
- ORA-04068existing state of packages has been discarded
- ORA-01427single-row subquery returns more than one row
- ORA-12899value too large for column