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

FOR XML PATH(''):Escapende specialtegn

Den XML du får er korrekt. Det er XML , ikke tekst, og kan læses som XML af en XML-parser. Specialtegn escapes korrekt, som de skal være. Uanset hvilket klientmodul du har, der bruger den XML, skal den parse den som XML, ikke som tekst, og så vises den korrekt.

Opdatering:

Hvis det ikke er klart, er alt hvad du skal gøre i din forespørgsel at behandle XML som XML og tekst som tekst, ikke blande XML som tekst, dvs.:

;WITH CodeValues AS ( SELECT Number,SUBSTRING(@R,Number,1) AS R,ASCII(SUBSTRING(@U,Number,1)) AS UA FROM Numbers WHERE Number<=LEN(@R) ) , XmlValues AS ( SELECT t.RowID ,(SELECT ''+c.R FROM Numbers n INNER JOIN CodeValues c ON ASCII(SUBSTRING(t.Unreadable,n.Number,1))=c.UA WHERE n.Number<=LEN(t.Unreadable) FOR XML PATH(''), TYPE ) AS readable FROM @TestTable t) SELECT x.RowId, x.readable.value('.', 'VARCHAR(8000)') as readable FROM XmlValues AS x


  1. Forældet:mysql_connect()

  2. Tilladelse nægtet ved forsøg på at importere en CSV-fil fra PGAdmin

  3. Hvordan TO_CHAR() virker i MariaDB

  4. Er det muligt at sende tabelnavn som en parameter i Oracle?