Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

UNTUK XML PATH(''):Keluar dari karakter khusus

XML yang Anda dapatkan sudah benar. Ini adalah XML , bukan teks, dan dapat dibaca sebagai XML oleh parser XML. Karakter khusus diloloskan dengan benar, sebagaimana mestinya. Modul klien apa pun yang Anda miliki yang menggunakan XML itu harus menguraikannya sebagai XML, bukan sebagai teks, dan kemudian akan ditampilkan dengan benar.

Pembaruan:

Jika tidak jelas, yang perlu Anda lakukan dalam kueri Anda adalah memperlakukan XML sebagai XML dan teks sebagai teks, bukan mencampur XML sebagai teks, yaitu:

;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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbarui beberapa tabel di SQL Server menggunakan INNER JOIN

  2. Atur susunan basis data dalam Entity Framework Code-First Initializer

  3. SSMS Kini Hadir dengan Azure Data Studio

  4. sp_executesql lambat dengan parameter

  5. Bagaimana mengonversi kolom stempel waktu SQL Server ke format datetime