Por que o Oracle 10g não reclama da ambiguidade da colun
Estou usando o Oracle 10g (XE 10.2.0.1.0) e encontro um comportamento que não entendo:
select *
from employees manager
join employees worker on MANAGER.EMPLOYEE_ID = WORKER.MANAGER_ID
join departments on DEPARTMENTS.manager_id = 108
where
department_id = 100
;
O problema é que acho que a Oracle deveria reclamar da ambiguidade dedepartment_id
na cláusula where, pois é uma coluna na tabelaemployees
edepartments
. O fato está no Oracle 10g, não, e o resultado mostra que ele interpreta odepartment_id
como o dedepartments
. No entanto, se eu comentar a segunda declaração de junção (quarta linha acima), a Oracle reclamará “ORA-00918: coluna definida ambiguamente” conforme o esperad
Então, alguém pode ajudar a explicar como a ambiguidade é definida no Oracle 10g? Ou talvez isso seja um bug em 10g?
BTW: As tabelas são definidas no esquema de RH padrão incluído no Oracle 10
Update: Acabei de encontrar um post relacionado:Por que o Oracle SQL misteriosamente resolve ambiguidade em uma união e não em outra