sql >> Database teknologi >  >> RDS >> Oracle

hente navn og værdi fra xmltype attribut i oracle

Du var der næsten med dit første forsøg. Mens du evaluerer XPath, når du er inde i attributlisten med /TableAConfig/@* , du behøver ikke text() for at få værdien af ​​attributten inde i den. Du er allerede på attributniveauet, så du bruger kun en "prik" . for nuværende node ville være tilstrækkeligt.

Så prøv sådan noget -

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

Den eneste forskel fra dit første forsøg er xpath for value attribut.



  1. 12.2 RAC/GI Nye funktioner

  2. SQL_NO_CACHE for Postgresql?

  3. Er det muligt at returnere tom række fra SQL Server?

  4. Effektivt at vælge den nærmeste (afstands)post fra en database