Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Impossibile eseguire il cast di TESTO in XML in SQL Server

Il tuo problema è:hai XML con un encoding="utf-16" , ma la tua colonna è una colonna non Unicode......

Supponendo che non puoi cambiarlo in NTEXT in entrambi i casi devi eseguire due CAST nidificati per ottenere ciò che stai cercando:

SELECT 
    CAST(CAST(XML AS NTEXT) AS XML).value('(/Record/UserGuid)[1]', 'NVARCHAR(max)')
FROM 
    tbl_Module_RequestForms_Items

Innanzitutto, devi trasmettere a NTEXT (o NVARCHAR(MAX) ), e poi devi trasmettere quel risultato a XML , prima di poterlo utilizzare.

Suggerimento: rimuovi quegli "altri motivi" e convertilo in XML datatype se hai davvero bisogno di usarlo come XML .....