xml类型字段values()方法数据类型转换错误?
时间: 2020-07-03来源:博客园
前景提要
xml类型字段values()方法数据类型转换错误?
0 悬赏园豆: 20 [待解决问题] 遇到一个令人抓狂的问题,希望大家帮帮忙:
用的是sqlserver2012,有一个表字段类型为xml,然后用这种方式读取:
select field.value('(//tag[@name="abc"]/@value)[1]','int')
from tb
where ....
表内xml数据如下:
<root>
<tag name="msg" value="你好" />
<tag name="abc" value="1000" />
<tag name="cde" value="10" />
<tag name="efg" value="100" />
</root>
即,根据xml元素属性值查询该元素另一个属性的值。
现在遇到的问题是,直接从字段进行查询,会报类型转换错误,而且始终是报:
在将nvarchar数据"你好"转换为int时失败
但是如果改为这样操作:
declare @v xml;
select @v=field from tb where ...
select @v.value('(//tag[@name="abc"]/@value)[1]','int');
则完全不会报错而且正确能取到值。
目前完全没有思绪,不知道到底哪里出错……试了换库、重建表、重新写入xml,都不行。
希望大家有以教我,谢谢! sqlserver xml value() showmemoney | 初学一级 | 园豆: 4
提问于:2020-07-03 19:57 显示帮助
使用"Ctrl+Enter"可进行快捷提交,评论支持部分 Markdown 语法:[link](http://example.com) _italic_ **bold** `code`。
< > 分享
分享您的问题
所有回答(1) 0 明明就是字串,為什麼你要指定INT 型別 RosonJ | 园豆:3627 (老鸟四级) | 2020-07-06 13:50 编辑文本 预览 上传图片
Ctrl+Enter键快速提交
清除回答草稿
您需要 登录 以后才能回答,未注册用户请先 注册 。

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行