Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wyodrębnianie tagów podrzędnych XML ze zbioru w Oracle za pomocą SQL

EXTRACTVALUE jest przestarzały w Oracle 12 - jest zastępowany przez XMLTABLE lub XMLQUERY .

SELECT x.description
FROM   your_table t
       CROSS JOIN
       XMLTABLE(
         '//object/'
         PASSING XMLTYPE( t.your_clob_column )
         COLUMNS description VARCHAR2(4000) PATH './property[@name="description"]/@value'
       ) x;

lub

SELECT XMLQUERY(
         '//object/property[@name="description"]/@value'
         PASSING XMLTYPE( your_clob_column )
         RETURNING CONTENT
       ).getStringVal()
FROM   your_table;

Ale jeśli chcesz użyć EXTRACTVALUE możesz zrobić:

SELECT EXTRACTVALUE(
         XMLTYPE( your_clob_column ),
         '//object/property[@name="description"]/@value'
       )
FROM   your_table;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zamawiać według daty w PostgreSQL lub Oracle

  2. W klauzuli kontra klauzula OR pod względem wydajności

  3. Co jest nie tak z kursorami?

  4. Błąd :ORA-06553:PLS-306:błędna liczba lub typy argumentów w wywołaniu procedury

  5. Różnica między programem SQL Server a „użytkownikiem” Oracle