4
我嘗試實現下面的代碼。XQuery/XPath使用sql參數?
declare @para varchar(10) = 'b';
declare @x xml = '
<x>
<a>1111</a>
<b>2222</b>
<c>3333</c>
</x>';
select @x.query('/x/sql:variable("@para")');
上面的代碼應該得到<b>2222</b>
的節點。然而,收到以下錯誤
Msg 9335, Level 16, State 1, Line 8 XQuery [query()]: The XQuery syntax '/function()' is not supported.
不能在SQL服務器使用XQuery家族,但不由地想:會不會'查詢(CONCAT( '/ X /',@para)) 「工作? – grtjn 2012-03-13 20:35:49
@grtjn,在SQL服務器中查詢的正確語法是'@ x.query('concat(「/ x /」,sql:variable(「@ para」))')'。但是它將僅返回'/ x/b'的字符串。 – ca9163d9 2012-03-14 04:29:38
Thnx,學到了新的東西.. – grtjn 2012-03-14 06:57:05