Unable to cast TEXT to XML in SQL Server

后端 未结 6 743
自闭症患者
自闭症患者 2020-12-25 10:36

Basically I have a column named XML that is of type TEXT; this cannot be changed for other reason, but I was wondering how I could cast it to XML.<

6条回答
  •  孤城傲影
    2020-12-25 11:18

    Your problem is: you have XML with an encoding="utf-16", but your column is a non-Unicode column......

    Assuming that you cannot change it to NTEXT either, you have to do two nested CAST to achieve what you're looking for:

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

    First, you need to cast to NTEXT (or NVARCHAR(MAX)), and then you have to cast that result to XML, before you can use it.

    Tip: remove those "other reasons" and convert this to XML datatype if you really need to use it as XML .....

提交回复
热议问题