Oracle
 sql >> база данни >  >> RDS >> Oracle

Извличане на XML елементи от XMLType Oracle

Можете да използвате комбинацията от existsNode и extract функционира както следва.

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;

* се използва като заместващ знак за съвпадение на всеки дъщерен възел. Например /PO/*/STREET съвпада с всеки елемент улица, който е наследник на елемента PO.

Изход:

attr1   ABC
attr2   XYZ
attr3   PQR


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Анти-съединяването по-ефективно ли е от лявото външно съединение?

  2. Как се вмъкват големи петна в Oracle 10G с помощта на System.Data.OracleClient?

  3. Бройте дните между два сегмента

  4. Защо ora_rowscn се ​​променя без актуализиране на таблица

  5. Oracle SQL:избирането от all_tab_columns не намира съществуваща колона