문서유형ㅣ장애해결
분야ㅣApp개발
적용제품버전ㅣ6FS07, 7FS02
오류코드ㅣ8047
문서번호ㅣTDETS009
현상
Oracle의 Outer Join 과 ANSI Join 을 혼용하여 사용할 경우, TBR-8047: Outer join operator (+) cannot be used with ANSI joins. 오류가 발생합니다.
원인
Syntax check 단계에서 Oracle의 Outer Join과 ANSI Join을 혼용한 경우, 에러가 발생합니다. 이는 기존에 혼용을 일부 허용하던 특수 처리 로직이 제거(revert)되었기 때문입니다.
결과적으로 두 문법을 함께 사용하는 쿼리는 문법 오류로 간주되어 실행되지 않습니다.
해결
쿼리에서 Oracle Outer Join과 ANSI Join을 혼용하지 않도록 수정합니다.
- TBR-8047: Outer join operator (+) cannot be used with ANSI joins 에러는 의도된 동작이며, 문법상 두 방식은 함께 사용할 수 없습니다.
참고재현 시나리오1. TEST TABLE 생성SQL> create table t128504(c1 number, c2 number); SQL> create table t1285042(c1 number, c2 number); SQL> insert into t128504 select level, level+1 from dual connect by level<10; SQL> insert into t1285042 select level, level+1 from dual connect by level<10;2. oracle outer join과 ansi join 혼용한 경우SQL> select * from t128504 a1 LEFT OUTER JOIN t1285042 a2 on a1.c1 = a2.c1(+); TBR-8047: Outer join operator (+) cannot be used with ANSI joins. at line 1, column 16 of null: select * from t128504 a1 LEFT OUTER JOIN t1285042 a2 on a1.c1 = a2.c1(+)3. oracle outer join과 ansi join 혼용 제거SQL> select * from t128504 a1 LEFT OUTER JOIN t1285042 a2 on a1.c1 = a2.c1; C1 C2 C1 C2 ---------- ---------- ---------- ---------- 1 2 1 2 2 3 2 3 3 4 3 4 4 5 4 5 5 6 5 6 6 7 6 7 7 8 7 8 8 9 8 9 9 10 9 10