sql >> データベース >  >> RDS >> Sqlserver

SQL Server データベースに格納するための XML の .NET 圧縮

    この記事 始めるのに役立つかもしれません。

    次のスニペットは、文字列を圧縮し、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);
    }
    

    編集:余談ですが、XML をテキストとして格納する場合でも、CLOB 形式を使用することをお勧めします。これは、varchar の長さが非常に制限されているためです。XML は多くの場合、すぐに超えてしまう可能性があります。



    1. CodeIgniter-期待どおりに機能しないことにより、順序でグループ化します

    2. WHERE句でmysqlSUM()を使用する

    3. json文字列を暗号化/復号化するための最良の方法は何ですか

    4. SQLAlchemy、PostgreSQL、array_agg:array_aggからアイテムを選択する方法は?