我有一个查询,如下所示无法将参数传递给xml列
<div class="flexItem">
<ui-textbox label="test" v-model="prospect.monthly_cost"
name="testmonth"
v-validate="`${vRequired}|decimal`"
v-on:keypress="isNumber(event)"
:invalid="errors.has('monthly_cost')"
:error="errors.first('monthly_cost')"
format="number"
></ui-textbox>
</div>
错误:
Msg 9303,Level 16,State 1,Procedure Concatenate ApprovalNumber,Line 15
XQuery [proposal.Data.value()]:'@'附近有语法错误。 ']'是必需的。
答案 0 :(得分:1)
你有一些额外的qoutes []
sql:variable()
...
这有效
DECLARE @xml XML='<root><a test="a">A</a><a test="b">B</a></root>';
DECLARE @SearchFor NVARCHAR(10)='a';
SELECT @xml.value(N'(/root/a[@test=sql:variable("@SearchFor")]/text())[1]','nvarchar(max)')
尝试将其更改为
DECLARE @xml XML='<root><a test="a">A</a><a test="b">B</a></root>';
DECLARE @SearchFor NVARCHAR(10)='a';
SELECT @xml.value(N'(/root/a[@test="sql:variable("@SearchFor")"]/text())[1]','nvarchar(max)')
...你得到了同样的错误