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

.NET kompresi XML untuk disimpan dalam database SQL Server

Artikel ini dapat membantu Anda memulai.

Cuplikan berikut dapat mengompresi string dan mengembalikan hasil kode 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);
}

EDIT:Sebagai tambahan, Anda mungkin ingin menggunakan format CLOB bahkan ketika menyimpan XML sebagai teks karena varchars memiliki panjang yang sangat terbatas - yang seringkali dapat dengan cepat dilampaui oleh 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. Simpan file di database SQL Server 2008 dengan Entity Framework

  2. Mengganti NULL dengan 0 dalam kueri server SQL

  3. Melewati baris saat mengimpor Excel ke SQL menggunakan SSIS 2008

  4. TSQL 2005, XML DML - Perbarui Dua Nilai sekaligus?

  5. Di mana server terdaftar disimpan?