Unable to cast TEXT to XML in SQL Server

后端 未结 6 773
自闭症患者
自闭症患者 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:23

    You should replace encoding="utf-16" to encoding="utf-8" or ''(blank) and then perform your operation.

    a. Converting encoding="utf-16" to encoding="utf-8"

    SELECT 
      CAST(
        REPLACE(CAST([xml] AS VARCHAR(MAX)), 'encoding="utf-16"', 'encoding="utf-8"')
      AS XML).value('(/Record//UserGuid/node())[1]', 'NVARCHAR(max)') as UserGuid
    from tbl_Module_RequestForms_Items
    

    b. Replacing encoding="utf-16" to ''(blank)

    SELECT 
      CAST(
        REPLACE(CAST([xml] AS VARCHAR(MAX)), 'encoding="utf-16"', '')
      AS XML).value('(/Record//UserGuid/node())[1]', 'NVARCHAR(max)') as UserGuid
    from tbl_Module_RequestForms_Items
    

提交回复
热议问题