Vì vậy, tôi có một cột varbinary(max)
trong SQL Server 2005 và nó đầy XML. Một vài bản ghi ở đâu đó đã cắt ngắn XML để chúng không hợp lệ.XML không hợp lệ trong cột varbinary (max) trong SQL Server 2005
Điều này có nghĩa nếu tôi chạy một
SELECT CAST(myVarbinaryColumn as XML) ...
nó thổi khối.
Làm cách nào để lọc/bỏ qua xml không hợp lệ?
Khi tôi đã thực hiện tương tự với một varchar được cho là có ngày tôi có thể sử dụng ISDATE(blah) = 1
. Vì vậy, một tương đương ISVALIDXML()
sẽ là tốt đẹp.
Xin vui lòng không bình luận về "Tại sao không phải là kiểu dữ liệu XML cột anyway .." Điều này xảy ra trong quá khứ và tôi không có một cỗ máy thời gian.
Hmm thú vị, byte cuối cùng sẽ luôn giống nhau vì vậy tôi có thể lọc ra những byte không khớp? May mắn trong kịch bản này, tất cả xml đều sử dụng cùng một lược đồ để tất cả chúng đều có phần tử gốc đóng phù hợp –