【发布时间】:2017-06-20 02:34:37
【问题描述】:
我有一个旧的 SQL Server 表,它有一个 varchar(2056) 列,其中每一行都包含 XML 的谨慎“元素”。有没有办法使用 T-SQL 将这些选择成真正的 XML?
这将使您了解我正在处理的内容:
declare @xmlTable table(
Value varchar(2056)
)
insert into @xmlTable
values ( '<Root>' ),
( ' <Child id="1">' ),
( ' <Name>Sam</Name>' ),
( ' </Child>' ),
( ' <Child />' ),
( '</Root>' )
问题是每个元素都在表格中的自己的行中,并且打开/关闭标签可以相隔几行。我尝试转换为 XML,但由于每一行都不是有效的 xml,因此失败了。我也尝试过旧的“select column to CSV using for XML”技巧(创建一个我可以转换的字符串),但这会将我的“>”转换为“>”等等
我使用的是 SQL Server 2012,这个特定的表有超过 650k 行分布在 560 个“文档”中。我希望能够这样说:
select Value
from @xmlTable
for xml path( '' ), type
并返回漂亮的可查询 XML 块。
谢谢!
【问题讨论】:
-
哎呀!我使用的是 sql 2012,而不是 2014。
标签: xml sql-server-2012