我正在一个项目上,需要一些帮助来尝试使此XML查询正常工作。我正在尝试在SQL中查询下面的XML作为带有Company值的新列“ Company”。
列名是CustomData
并且是varchar(3000),因此除非有其他方法,否则它似乎需要转换为XML。
<?xml version="1.0" encoding="UTF-8"?>
<ArrayOfCustomData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<CustomData name="Company" value="WT001" />
<CustomData name="Location" value="123456" />
<CustomData name="DealerCode" value="WT" />
<CustomData name="Domain" value="WT" />
<CustomData name="Region" value="1234" />
</ArrayOfCustomData>
这是我正在使用的SQL代码。
select CustomData.value('(/ArrayOfCustomData/CustomData name="Company")[1]','varchar(30)') as Company
from tbl_User_Ref
我收到此错误:
“找不到列“ CustomData”或用户定义的函数或聚合“ CustomData.value”,或者名称不明确。
任何帮助表示赞赏。
谢谢!
我设法通过使用下面的代码使其工作。不知道为什么,但是看起来我的XML实际上是UTF-16,而不是UTF-8,这也可能给我带来了问题。谢谢您的帮助。
CAST(CAST(CustomData AS NTEXT) AS XML).value('(/ArrayOfCustomData/CustomData[@name="Company"]/@value)[1]','varchar(3000)') as Company
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句