SQL Server 2008 R2:仅在使用 XQuery (.value) 查询 XML 时获取 NULL
SQL Server 2008 R2: Only get NULL when using XQuery (.value) to query into XML
我的 table 名为 Table_1
,有 2 列:
id (int) and myxml (xml)
我在下面附上了我正在使用的 xml 快照。
(这个xml对应id = 1
)
我遇到的问题是,在使用 XQuery (.value) 查询此 XML
时,我只会得到 NULL
这是我写的代码:
SELECT myXml.value('(Archivebatch/Cr/Modifcltn/Modif)[2]/@modiftype','int')
from Table_1 where id = 1
无论我尝试从 xml 中查询什么,我都只会得到 NULL
我也尝试包括没有帮助的命名空间(仍然只有 return NULL)
编辑:我试图通过以下方式包含命名空间:
WITH XMLNAMESPACES ('w3.org/2001/XMLSchema-instance' AS ns)
select myXml.value('
(/ns:Archivebatch/ns:Cr/ns:Modifcltn/ns:Modif)[2]/@modiftype','int')
from dbo.table_1 where id = 1
对于此特定查询重要的命名空间是此处定义的默认命名空间:
xmlns="SIMATIC_BATCH_V8_1_0"
所以您应该注册 ns
前缀以指向上述名称空间 URI,或者您可以使用 ;WITH XMLNAMESPACES
注册默认名称空间并省略 xquery 中的前缀,因为它现在已成为默认名称:
;WITH XMLNAMESPACES (DEFAULT 'SIMATIC_BATCH_V8_1_0')
select myXml.value('(/Archivebatch/Cr/Modifcltn/Modif)[2]/@modiftype','int')
from dbo.table_1 where id = 1
我的 table 名为 Table_1
,有 2 列:
id (int) and myxml (xml)
我在下面附上了我正在使用的 xml 快照。
(这个xml对应id = 1
)
我遇到的问题是,在使用 XQuery (.value) 查询此 XML
时,我只会得到 NULL这是我写的代码:
SELECT myXml.value('(Archivebatch/Cr/Modifcltn/Modif)[2]/@modiftype','int')
from Table_1 where id = 1
无论我尝试从 xml 中查询什么,我都只会得到 NULL 我也尝试包括没有帮助的命名空间(仍然只有 return NULL)
编辑:我试图通过以下方式包含命名空间:
WITH XMLNAMESPACES ('w3.org/2001/XMLSchema-instance' AS ns)
select myXml.value('
(/ns:Archivebatch/ns:Cr/ns:Modifcltn/ns:Modif)[2]/@modiftype','int')
from dbo.table_1 where id = 1
对于此特定查询重要的命名空间是此处定义的默认命名空间:
xmlns="SIMATIC_BATCH_V8_1_0"
所以您应该注册 ns
前缀以指向上述名称空间 URI,或者您可以使用 ;WITH XMLNAMESPACES
注册默认名称空间并省略 xquery 中的前缀,因为它现在已成为默认名称:
;WITH XMLNAMESPACES (DEFAULT 'SIMATIC_BATCH_V8_1_0')
select myXml.value('(/Archivebatch/Cr/Modifcltn/Modif)[2]/@modiftype','int')
from dbo.table_1 where id = 1