Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

.NET компресия на XML за съхраняване в база данни на SQL Server

Тази статия може да ви помогне да започнете.

Следният фрагмент може да компресира низ и да върне резултат, кодиран с base-64:

public static string Compress(string text)
{
 byte[] buffer = Encoding.UTF8.GetBytes(text);
 MemoryStream ms = new MemoryStream();
 using (GZipStream zip = new GZipStream(ms, CompressionMode.Compress, true))
 {
  zip.Write(buffer, 0, buffer.Length);
 }

 ms.Position = 0;
 MemoryStream outStream = new MemoryStream();

 byte[] compressed = new byte[ms.Length];
 ms.Read(compressed, 0, compressed.Length);

 byte[] gzBuffer = new byte[compressed.Length + 4];
 System.Buffer.BlockCopy(compressed, 0, gzBuffer, 4, compressed.Length);
 System.Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, gzBuffer, 0, 4);
 return Convert.ToBase64String (gzBuffer);
}

РЕДАКТИРАНЕ:Като настрана, може да искате да използвате CLOB формати дори когато съхранявате XML като текст, защото varchars имат много ограничена дължина - която XML често може бързо да надхвърли.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изчисляване на сбор от стойности в дърво (рекурсивна заявка)

  2. 6 начина за проверка на размера на база данни в SQL Server с помощта на T-SQL

  3. Инструкция за динамично актуализиране с имена на колони на променливи

  4. SQL Server 2005:разделяне на низ в масив и получаване на масив (x)?

  5. Имитирайте group_concat() в комбинация с GROUP BY