带有无效标识符

时间:2017-05-18 16:42:40

标签: oracle xmltable

导致错误的原因是:ORA-00904:“DR”。“DLR_KEY”:标识符无效? Oracle Version 12.1.0.2.0

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

1 个答案:

答案 0 :(得分: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