【发布时间】:2016-03-14 19:46:16
【问题描述】:
我正在尝试编写 SQL Server 查询以从 XML 列中选择值。
messagebody 列(XML 类型)的内容如下:
<?xml version="1.0" encoding="utf-16"?>
<GetActivityUnemploymentGenerelEventType xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ActivityItem xmlns="http://service.bmuuuu/">
<ActivityCoreItem xmlns="http://service.bmxxxx">
<ActivityIdentifier xmlns="http://service.bmyyyy">d5ck7132-703c-1234-8099-963b35b24bc5</ActivityIdentifier>
<StartDate xmlns="http://service.bmaaa">2016-01-25</StartDate>
我正在尝试确定startdate 和ActivityIdentifier 的价值。
我已经尝试了几种解决方案:
SELECT XML.query('messagebody(/GetActivityUnemploymentGenerelEventType/ActivityItem/ActivityCoreItem/ActivityIdentifier)')
FROM table
SELECT messagebody.value('(/GetActivityUnemploymentGenerelEventType/ActivityCoreItem/ActivityIdentifier/Value)[1]', 'int')
FROM table
SELECT messagebody.value('(/GetActivityUnemploymentGenerelEventType//ActivityCoreItem/ActivityIdentifier())[1]', 'nvarchar(max)')
FROM table
查询结果:
找不到列“messagebody”或用户定义的函数或聚合“messagebody.value”,或者名称不明确。
有什么建议吗?
【问题讨论】:
标签: sql sql-server xml tsql