繁体   English   中英

从 NVARCHAR(MAX) 列中获取 xml 值

[英]get xml value from an NVARCHAR(MAX) column

我阅读了许多相关的帖子,并尝试从任何特定标签的类型为NVARCHAR(MAX)的列中获取 xml 值。

CREATE TABLE dataTable (RECID NVARCHAR(MAX),XMLRECORD NVARCHAR(MAX));

我的 XMLRECORD 列将包含带有标记的数据,例如

<row id='1'>
    <c2>Account-sample</c2>
</row>

下面附件是我创建的一个选择查询,它产生了一个 CLOB 而不是实际值。 关于如何获得实际价值的任何想法? (即帐户样本)

select b.x.value('data(/row/c2)[1]', 'NVARCHAR(max)')
from dataTable a
cross apply(select cast(cast(XMLRECORD as VARCHAR(max)) as XML) x) b;

使用以下查询

select *, try_cast(xmlrecord as xml).value('(row/c2)[1]', 'nvarchar(500)') as c2
from dataTable

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM