sql >> Database >  >> RDS >> Oracle

XML-elementen ophalen uit XMLType Oracle

U kunt de combinatie van existsNode . gebruiken en extract werkt als volgt.

SELECT b.SOFT_ATTRIBUTES,
  CASE
    WHEN existsNode (a.soft_attributes ,'/*/'
      ||b.SOFT_ATTRIBUTES) = 1
    THEN a.soft_attributes.extract('/*/'
      ||b.SOFT_ATTRIBUTES
      ||'/text()').getStringVal()
  END value
FROM xml_analysis a,
  xml_softattributes b
WHERE a.id = b.id;

* wordt gebruikt als een jokerteken om overeen te komen met een onderliggende node. /PO/*/STREET komt bijvoorbeeld overeen met elk straatelement dat een kleinkind is van het PO-element.

Uitgang:

attr1   ABC
attr2   XYZ
attr3   PQR


  1. Update databasetabel met selectievakjes, php &mysql

  2. Oracle Instant Client voor op ARM gebaseerd Debian-apparaat

  3. MYSQL Hoe maak ik een aangepast maandverschil tussen twee datums in MYSQL?

  4. SQL-injectie-aanvallen voorkomen met Python