Así que obtuve una columna varbinary(max)
en SQL Server 2005 y está llena de XML. Algunos registros en alguna parte tienen XML truncado por lo que no son válidos.XML no válido en una columna varbinary (max) en SQL Server 2005
Esto significa que si corro un
SELECT CAST(myVarbinaryColumn as XML) ...
sopla trozos.
¿Cómo puedo filtrar/omitir xml no válido?
Cuando he hecho algo similar con un varchar que supuestamente tiene fechas, podría usar ISDATE(blah) = 1
. Entonces, un equivalente ISVALIDXML()
sería agradable.
Por favor, no comenten "Por qué no es el tipo de datos XML de columna de todos modos .." Esto sucedió en el pasado y no tengo una máquina del tiempo.
Hmm interesante, los bytes finales siempre serán los mismos, así que podría filtrar los que no coinciden? Afortunadamente, en este escenario todos los xml usan el mismo esquema, por lo que todos deben tener un elemento raíz de cierre coincidente –