programing

오라클 10g이 칼럼 모호성에 대해 불평하지 않는 이유는?

muds 2023. 11. 7. 21:08
반응형

오라클 10g이 칼럼 모호성에 대해 불평하지 않는 이유는?

Oracle 10g(XE 10.2.0.1.0)를 사용하고 있는데 이해할 수 없는 동작이 나타납니다.

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
;

문제는 오라클이 다음의 모호성에 대해 불평해야 한다고 생각한다는 것입니다.department_idwhere 절에서, 그것은 두 표의 열이기 때문에.employees그리고.departments. 사실은 Oracle 10g에 있습니다. 그렇지 않습니다. 그리고 결과는 다음을 해석한다는 것을 보여줍니다.department_id에 있어서의 일인자로서departments. 하지만 두번째 조인문(위 4행)에 대해 언급하면 오라클은 예상대로 "ORA-00918: column ambully defined"라고 불만을 제기합니다.

그렇다면 누군가 Oracle 10g에서 모호성이 정의되는 방법을 설명하는 데 도움을 줄 수 있습니까?아니면 이것이 10g 안에 있는 버그일까요?

BTW: 테이블은 Oracle 10g에 번들로 제공되는 기본 HR 스키마에 정의되어 있습니다.

업데이트: 방금 관련 게시물을 찾았습니다.Oracle SQL이 한 조인에서 모호성을 불가사의하게 해결하고 다른 조인에서는 해결하지 못하는 이유

오라클이 고치지 않기로 한 것은 오라클 10g의 버그라고 생각합니다.애플리케이션을 10g에서 11gR2로 업그레이드할 때 모호한 열 이름과 관련하여 "느리게" 작성되었지만 Oracle 10g에서 작동하는 쿼리 몇 개를 발견했습니다.그들은 모두 11gR2에서 작업을 중단했습니다.오라클에 문의해 보았지만 모호한 컬럼 이름에 대한 관대한 행동은 오라클 10g의 올바른 행동이고 엄격한 행동은 11g의 올바른 행동이라고 거의 말했습니다.

그런 것 같아요. 왜냐하면 부서들은 아무 것이 없기 때문입니다.alias. 그러므로 모든 것은 자격이 없는 상태에서.<alias>.먼저 치료를 받습니다.departments.

그래서 당신이 줄 때도 생각합니다.departmentsORA-00918을 다시 받아야 할 가명입니다.여기서 테스트할 수 없습니다...

언급URL : https://stackoverflow.com/questions/6293193/why-oracle-10g-doesnt-complain-about-column-ambiguity

반응형