我正在尝试从 XML 文档中选择值,其中一些是十进制值,但它们位于 XML 数据馈送中,由逗号而不是小数点2,05
而不是2.05
. 我相信这是德国人写十进制数的风格。
无论如何,当我尝试选择它们时出现错误Error converting data type nvarchar to numeric
,并希望有某种方法可以使此查询工作而无需对源数据进行预处理:
DECLARE @XmlDoc INT
DECLARE @XmlData VARCHAR(MAX)
SET @XmlData = '<xml><sample><decvalue>2,05</decvalue></sample></xml>'
EXEC sp_xml_preparedocument @XmlDoc OUTPUT, @XmlData
SELECT *
FROM OPENXML(@XmlDoc,'/xml/sample',2)
WITH (decvalue DECIMAL(10,2) 'decvalue')