获取“xml 数据类型方法“修改”的参数 1”必须是字符串文字'在 xml 中插入属性时
尝试以下代码。但出现“xml 数据类型方法“修改”的参数 1 必须是字符串文字”错误。搜索了很多但找不到解决这个问题的方法
SET @Path = '/@ParentNodeName/@NodeName/child::*'
SET @x.modify('insert attribute status {sql:variable("@status")}
as first into (' + @Path + ')[1]')
Trying the following code. But getting 'The argument 1 of the xml data type method "modify" must be a string literal' error. searched alot but cant find any solution for this problem
SET @Path = '/@ParentNodeName/@NodeName/child::*'
SET @x.modify('insert attribute status {sql:variable("@status")}
as first into (' + @Path + ')[1]')
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
问题不在于您尝试插入的值的 sql:variable - 问题在于您将 XPath 包含到修改语句中的方式。你不能将该命令串在一起 - 你需要使用文字:
所以你需要使用:
然后它就可以正常工作了。
The problem isn't the sql:variable with the value you're trying to insert - it's the way you include the XPath into your modify statement. You cannot string together that command - you need to use a literal:
So you need to use:
Then it works just fine.
您可以使用类似的东西 - 只是显示变量部分的用法。作为修改调用的一部分,您可以做同样的事情
假设您有像这样的层次结构
查询:-
You can use something like this - Just showing the usage of variable part. Same thing you can do as part of modify call
Assuming you have hierarchy like this
Query:-