2011-02-03 73 views
0

我有一個xml文檔保存在一個DB2數據類型的DB2表中,我想更新一個節點的值。我試過這個:替換DB2中xml列xml屬性的內容

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

(我試了幾個變種,谷歌暗示它可以做這個工作的一切)。 但不幸的是我只是收到錯誤消息。這裏:

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

我在做什麼錯了?

+0

@yankee:你使用正確的DB2服務器版本嗎? (看起來像從9.5開始支持XQuery Update)您是否使用了正確的SQL主機表達式,如本文中的示例http://www.ibm.com/developerworks/data/library/techarticle/dm-0710nicola/? – 2011-02-03 22:58:31

回答

0

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解決方案,但問題解決了......