오라클 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_id
where 절에서, 그것은 두 표의 열이기 때문에.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
.
그래서 당신이 줄 때도 생각합니다.departments
ORA-00918을 다시 받아야 할 가명입니다.여기서 테스트할 수 없습니다...
언급URL : https://stackoverflow.com/questions/6293193/why-oracle-10g-doesnt-complain-about-column-ambiguity
'programing' 카테고리의 다른 글
.NET에서 오라클 연결을 닫는 방법 (0) | 2023.11.07 |
---|---|
MariaDB는 엄격 모드가 해제되어 있고 열이 NULL이 아니며 기본값이 없을 때 행을 삽입하지 않습니다. 왜죠? (0) | 2023.11.07 |
wordpress root url을 구하는 방법 (ABSPATH 각 페이지 변경사항) (0) | 2023.11.02 |
gprof : 메인 프로그램과 연동되는 공유 라이브러리의 함수에 대한 호출 그래프 생성 방법 (0) | 2023.11.02 |
WooCommerce - 주문 ID에서 구독 ID 가져오기 (0) | 2023.11.02 |