Oracle
 sql >> Base de données >  >> RDS >> Oracle

La jointure externe gauche Oracle XMLTABLE ne renvoie pas de résultats lorsque XPath n'existe pas

Vous n'avez pas besoin de plusieurs appels à XMLTable, vous pouvez déplacer la sélection d'éléments dans la clause de chemin de colonne et avoir trois clauses de ce type :

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