Ich habe eine alte SQL Server-Tabelle, die eine varchar(2056)
Spalte hat, in der jede Zeile diskrete "Elemente" von XML enthält. Gibt es eine Möglichkeit, diese mit T-SQL in echtes XML umzuwandeln?So wählen Sie aus diskreten Varchar-Elementen als XML aus?
Dies gibt Ihnen eine Vorstellung davon, was mit denen ich zu tun:
declare @xmlTable table(
Value varchar(2056)
)
insert into @xmlTable
values ('<Root>'),
(' <Child id="1">'),
(' <Name>Sam</Name>'),
(' </Child>'),
(' <Child />'),
('</Root>')
Das Problem ist, dass jedes Element auf einer eigenen Zeile in der Tabelle ist, und zum Öffnen/Schließen-Tags können auseinander mehrere Reihen sein. Ich habe versucht, in XML zu konvertieren, aber da jede Zeile kein gültiges XML ist, schlägt dies fehl. Ich habe auch den alten "select column to CSV using for XML" Trick versucht (um eine Schnur zu schaffen, die ich werfen könnte), aber das wandelt mein ">" in "& gt;" etc.
Ich benutze SQL Server 2012, und diese bestimmte Tabelle hat über 650.000 Zeilen verteilt auf 560 "Dokumente". Ich möchte in der Lage sein, etwas zu sagen wie:
select Value
from @xmlTable
for xml path(''), type
und geben Sie schöne Brocken von abfragbaren XML zurück.
Danke!
Whoops! Ich benutze SQL 2012, nicht 2014. –