У меня есть столбец xml со следующими данными:
<Policy>
<Name>
<Id>adf</Id>
<First>Alan</First>
<Last>Turing</Last>
</Name>
<Name>
<Id>asdf</Id>
<Business>Vandelay Industries</Business>
</Name>
<Name>
<Id>asdf</Id>
<First>Dennis</First>
<Last>Ritchie</Last>
</Name>
</Policy>
Как мне написать запрос XML-DML, который заменит значение элемента Id для каждого Имени во всех строках, чтобы оно содержало значения First, Last и Business. Например:
<Policy>
<Name>
<Id>AlanTuring</Id>
<First>Alan</First>
<Last>Turing</Last>
</Name>
<Name>
<Id>Vandelay Industries</Id>
<Business>Vandelay Industries</Business>
</Name>
<Name>
<Id>DennisRitchie</Id>
<First>Dennis</First>
<Last>Ritchie</Last>
</Name>
</Policy>
Вот моя неудачная попытка:
update policy set data.modify('
replace value of (//Name/Id/text())[1]
with concat(
(//Name/First/text())[1],
(//Name/Last/text())[1],
(//Name/Business/text())[1])')
Который производит следующее:
<Policy>
<Name>
<Id>AlanTuringVandelay Industries</Id>
<First>Alan</First>
<Last>Turing</Last>
</Name>
<Name>
<Id>asdf</Id>
<Business>Vandelay Industries</Business>
</Name>
<Name>
<Id>asdf</Id>
<First>Dennis</First>
<Last>Ritchie</Last>
</Name>
</Policy>