1
update tbl_xml set mov_vcds.modify('replace value of(/videos/video/title/text())[1] with "Anbu"') 

text()なしでこのクエリを使用できます。

4

2 に答える 2

4

text()ノードのコンテンツを指定しtitleます。それがなければあなたは得る

Msg 2356, Level 16, State 1, Line 9
XQuery [tbl_xml.mov_vcds.modify()]: The target of 'replace value of' must be a non-metadata attribute or an element with simple typed content, found 'element(title,xdt:untyped) ?'

だからあなたはそれが必要です。

于 2012-03-02T10:36:06.797 に答える
2

残念ながら、パス式の最後にこのように使用されている「text()」が不要で、場合によっては有害であることがよくあります。通常、要素のコンテンツを参照しているコンテキストでは、要素ノード自体を使用できます。いくつかの例外があります。たとえば、要素コンストラクターです。

<title>{title}</title>

<title>{title/text()}</title>

さまざまなことを行います(最初はあなたに与えます<title><title>original title</title></title>)。ただし、この場合はtitle/string()、ネストされたコメントや混合コンテンツなどにうまく対応できるため、通常は使用することをお勧めします。

于 2012-03-02T11:46:04.700 に答える