kolmapäev, 12. september 2012

SQL SERVER XML andmetüübi pööramine VARCHAR(MAX)

Kui XML andmetüübi pööramisel VARCHAR(MAX) võib hakata pilduma viga

Conversion of one or more characters from XML to target collation impossible

DECLARE @tulem VARCHAR(MAX), @xmlMuutuja
SET @xmlMuutuja= ... Mingi XML tüüpi väärtus

Viga ilmneb järgneval tüübiteisendamisel
SET @tulem=CAST(@xmlMuutuja AS VARCHAR(MAX))

siis veast saab lahti kui kõigepealt pöörata NVARCHAR(MAX) ja peale seda VARCHAR(MAX)

SET @tulem=CAST(CAST(@xmlMuutuja AS NVARCHAR(MAX)) AS VARCHAR(MAX))