Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle XMLTABLE Left Outer Join gibt keine Ergebnisse zurück, wenn XPath nicht vorhanden ist

Sie benötigen keine mehrfachen Aufrufe von XMLTable, Sie können die Elementauswahl in die Spaltenpfadklausel verschieben und haben drei solcher Klauseln:

select x.id1, x.id2, x.id3
from tbl t
cross join
  xmltable ('/root'
    passing t.xml_data
    columns id1 varchar2 (100) path 'element[id=1]/data',
       id2 varchar2 (100) path 'element[id=2]/data',
       id3 varchar2 (100) path 'element[id=3]/data'
) x;

ID1   ID2   ID3 
----- ----- -----
abc   def