Database/Oracle

[Oracle]ORA-01417: 하나의 테이블은 하나의 다른 테이블과 포괄 조인할 수 있습니다

  • -
반응형
예전에 꽤 헤맸던 오류였는데 따로 메모해둔 자료가 있어서 기록을 해두려고 합니다.
ORA-01417: 하나의 테이블은 하나의 다른 테이블과 포괄 조인할 수 있습니다
이 에러는 대상 테이블을 두 개 이상의 테이블과 동시에 아우터 조인할 때 발생합니다. 아래 에러를 내기위해서 임의로 쿼리문을 만들었습니다.
SELECT A.O_NM
     , B.O_NM
     , C.O_NM
FROM (
     SELECT 'C001' O_CD 
           , 'A' O_NM
     FROM DUAL
     ) A
    ,(
     SELECT 'C002' O_CD 
           , 'B' O_NM
     FROM DUAL
     ) B
    ,(
     SELECT 'C003' O_CD 
           , 'C' O_NM
     FROM DUAL
     ) C 
WHERE A.O_CD=B.O_CD(+)
AND C.O_CD=B.O_CD(+)

 

 

 

B라는 테이블이 A와 C에 동시에 아우터 조인이 되고 있습니다.

결과는 당연히 에러입니다.

 

아우터 조인을 할 때는 대상 테이블을 오직 한 개의 테이블과 조인을 시켜야합니다.

위의 에러를 잡기 위해서는 아래와 같이 수정을 해주면 됩니다.

SELECT A.O_NM
     , B.O_NM
     , C.O_NM
FROM (
     SELECT 'C001' O_CD 
           , 'A' O_NM
     FROM DUAL
     ) A
    ,(
     SELECT 'C002' O_CD 
           , 'B' O_NM
     FROM DUAL
     ) B
    ,(
     SELECT 'C003' O_CD 
           , 'C' O_NM
     FROM DUAL
     ) C 
WHERE A.O_CD=B.O_CD(+)
AND A.O_CD=C.O_CD(+)

 


+ 피드백은 언제나 환영입니다 :)

반응형

'Database > Oracle' 카테고리의 다른 글

[Oracle]CUBE  (0) 2018.08.22
[Oracle]ROLLUP  (0) 2018.08.22
[Oracle]TRUNC  (0) 2018.08.17
[Oracle]USER_SOURCE 사용  (0) 2018.08.01
[Oracle]ALL_OBJECTS 사용  (1) 2018.07.20
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.