आप अपने पहले प्रयास में लगभग वहां थे। XPath का मूल्यांकन करते समय, जब आप /TableAConfig/@*
के साथ विशेषता सूची के अंदर होते हैं , आपको text()
. की आवश्यकता नहीं है इसके अंदर विशेषता का मूल्य प्राप्त करने के लिए। आप पहले से ही विशेषता स्तर पर हैं इसलिए केवल "डॉट" .
वर्तमान नोड के लिए पर्याप्त होगा।
तो कुछ इस तरह ट्राई करें -
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
आपके पहले प्रयास से एकमात्र अंतर value
. का xpath है विशेषता।