Ниже сценариев (любой из двух ниже, как обе дают одинаковый вывод) приводит имя дочерней части в том же поле. Однако они должны находиться в разных областях. [Загрузите XML-данные с несколькими дочерними элементами с таким же именем в Teradata
Select X.*
FROM(
Select NEW XML(Payload).XMLEXTRACT('/', NULL) TableA
FROM Parents
)C,
XMLTABLE (
'/Father'
PASSING C.TableA
COLUMNS
"Wife_Name" VARCHAR(20) PATH '/Father/Wife/Name',
"Daughter_Name" VARCHAR(20) PATH '/Father/Wife/Daughter/Name'
)AS X;
SELECT CAST(NEW XML(Payload).XMLEXTRACT('/Father/Wife/Name', NULL) AS VARCHAR(32) CHARACTER SET UNICODE) AS "Wife_Name",
CAST(NEW XML(Payload).XMLEXTRACT('/Father/Daughter/Name', NULL) AS VARCHAR(32) CHARACTER SET UNICODE) AS "Daughter_Name"
FROM Parents;
- Выходной ток (снизу скриптом)
жена Дочь
Марта Rani Майя
Ожидаемый результат
жена Дочь
Марта Rani
Марта Майя
XML File
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<Father>
<Wife>
<Name>Martha</Name>
</Wife>
<Children>
<Daughter>
<Name>Rani</Name>
<Age>12</Age>
</Daughter>
<Daughter>
<Name>Maya</Name>
<Age>16</Age>
</Daughter>
</Children>
</Father>