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

pobieranie nazwy i wartości z atrybutu xmltype w oracle

Byłeś prawie na miejscu przy pierwszej próbie. Podczas oceniania XPath, gdy jesteś na liście atrybutów z /TableAConfig/@* , nie potrzebujesz text() aby uzyskać wartość atrybutu w nim zawartego. Jesteś już na poziomie atrybutu, więc użyj tylko „kropki” . dla bieżącego węzła wystarczy.

Spróbuj więc czegoś takiego -

SELECT XMLElement("TableAConfigList",
    (SELECT
        XMLAgg(
           XMLElement("TableAConfig",
                XMLAttributes(
                    tmp."attr_name" as "name",
                    tmp."attr_text" as "value"
                )
            )
        ) from XMLTable('/TableAConfig/@*'
            passing TableA.TableA_config
            columns
               "attr_name" varchar(30) path 'name()',
               "attr_text" varchar(30) path '.'
        ) tmp
    )
) from dual

Jedyną różnicą w stosunku do pierwszej próby jest xpath value atrybut.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Maksymalna długość VARCHAR to 4000, ale można zapisać tylko 2666 bajtowy tekst w języku tajskim

  2. Wielokrotne wstawianie SQL do wielu wierszy

  3. Co powoduje błąd brakującego prawego nawiasu w SQL?

  4. Łączenie się z bazą danych OracleDB za pośrednictwem aplikacji na Androida

  5. Błąd System.Data.OracleClient wymaga oprogramowania klienta Oracle w wersji 8.1.7 lub nowszej podczas instalacji instalacji