Замена содержимого атрибута xml в столбце xml в DB2

У меня есть XML-документ, сохраненный в таблице DB2 с типом данных XML, и я хочу обновить значение узла. Я попробовал это:

XQUERY replace value of node db2-fn:sqlquery('select my_xml_column from myTable where someId = someValue)/some/xpath/with/@attribute with "foobar"

(и я попробовал несколько вариантов, все, что Google намекал, что он может сделать эту работу). Но, к сожалению, я просто получаю сообщения об ошибках. Вот:

SQL16002N  An XQuery expression has an unexpected token "value" following "replace ". Expected tokens may include: "

Что я делаю неправильно?

1 ответ

Решение

update myTable SET myXmlColumn = XMLQUERY(' transform copy $copy := $original modify do replace value of $copy/some/xpath/with/@attribute with "FOOBAR" return $copy ' PASSING myXmlColumn AS "original" ) WHERE someId = someValue

Это работает и дает желаемый эффект. Он надеялся, что кто-нибудь придумает чистое решение XQuery, но проблема решена...

Другие вопросы по тегам