2017-05-18 7 views
0

오류의 원인 : ORA-00904 : "DR". "DLR_KEY": 유효하지 않은 식별자? Oracle 버전 12.1.0.2.0잘못된 식별자가있는 Oracle XMLTable 오류

'왼쪽 외부 조인 user_dealer ...'행을 주석 처리하면 쿼리가 성공적으로 실행됩니다.

select dr.dlr_key, 
    dr.dlr_reference_num, 
    dr.dlr_name 
from dealer dr, 
    XMLTable('/DLR' 
     PASSING dr.DLR_DEALER_DATA 
     COLUMNS 
     DlrMiscPymtPlan varchar(100) PATH 'DlrMiscPymtPlan' 
     ) as a2 
inner join wuser wu on wu.wu_key = 1 
left outer join user_dealer ud on ud.udl_dlr_fkey = dr.dlr_key 
    and ud.udl_usr_fkey = 1 
where (
     UPPER(DLR_NAME) like 'MLB%' 
     and (UPPER(a2.DlrMiscPymtPlan) like 'P') 
     ) 

답변

0

이 문제는 XMLTable이 암시 적으로 조인하는 방법을 다룹니다. 이 쿼리는 작동 : 사이트의 정보를

select dr.dlr_key, 
    dr.dlr_reference_num, 
    dr.dlr_name 
from dealer dr left outer join 
    XMLTable('/DLR' 
     PASSING dr.DLR_DEALER_DATA 
     COLUMNS 
     DlrMiscPymtPlan varchar(100) PATH 'DlrMiscPymtPlan' 
     ) as a2 on 1=1 
inner join wuser wu on wu.wu_key = 1 
left outer join user_dealer ud on ud.udl_dlr_fkey = dr.dlr_key 
    and ud.udl_usr_fkey = 1 
where (
     UPPER(DLR_NAME) like 'MLB%' 
     and (UPPER(a2.DlrMiscPymtPlan) like 'P') 
     ) 

감사 : Using join with xmltablexmltable with left outer join