标识符无效的Oracle XMLTable错误

标识符无效的Oracle XMLTable错误,oracle,xmltable,Oracle,Xmltable,导致错误的原因:ORA-00904:“DR”。“DLR_密钥”:无效标识符? Oracle版本12.1.0.2.0 如果我注释掉“left outer join user\u dealer…”行,则查询将成功运行 select dr.dlr_key, dr.dlr_reference_num, dr.dlr_name from dealer dr, XMLTable('/DLR' PASSING dr.DLR_DEALER_DATA C

导致错误的原因:ORA-00904:“DR”。“DLR_密钥”:无效标识符? Oracle版本12.1.0.2.0

如果我注释掉“left outer join user\u 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')
        )

这个问题涉及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')
        )
感谢网站上的信息: 及