Sample code for 30+ languages & platforms
SQL Server

Decompress a Base64-Encoded Gzip String

See more Gzip Examples

This example demonstrates how to use the UncompressStringENC method to decompress Gzip-compressed data that is provided as an encoded string.

The example first compresses a string and encodes the result as Base64. It then demonstrates how the Base64 string can be decoded and decompressed back into the original text.

Internally, the method performs three steps:

  1. The input string is decoded from the specified encoding (Base64 in this example) to obtain the compressed binary data.
  2. The binary data is decompressed using the Gzip algorithm.
  3. The resulting bytes are interpreted using the specified character set (UTF-8) to produce the final string.

This method is useful when working with compressed data embedded in text-based formats such as JSON, XML, or HTTP responses.

Chilkat SQL Server Downloads

SQL Server
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @iTmp0 int
    -- Important: Do not use nvarchar(max).  See the warning about using nvarchar(max).
    DECLARE @sTmp0 nvarchar(4000)
    -- This example demonstrates how to decompress Gzip data that is
    -- provided as a Base64-encoded string.

    DECLARE @gzip int
    EXEC @hr = sp_OACreate 'Chilkat.Gzip', @gzip OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    -- First, create a compressed Base64 string for demonstration purposes:
    DECLARE @inputStr nvarchar(4000)
    SELECT @inputStr = 'The quick brown fox jumps over the lazy dog.'
    EXEC sp_OASetProperty @gzip, 'Filename', 'quickBrownFox.txt'
    DECLARE @compressedBase64 nvarchar(4000)
    EXEC sp_OAMethod @gzip, 'CompressStringENC', @compressedBase64 OUT, @inputStr, 'utf-8', 'base64'
    EXEC sp_OAGetProperty @gzip, 'LastMethodSuccess', @iTmp0 OUT
    IF @iTmp0 = 0
      BEGIN
        EXEC sp_OAGetProperty @gzip, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @gzip
        RETURN
      END


    PRINT 'Compressed (Base64): ' + @compressedBase64

    -- Now decompress the Base64-encoded Gzip string:
    DECLARE @decompressed nvarchar(4000)
    EXEC sp_OAMethod @gzip, 'UncompressStringENC', @decompressed OUT, @compressedBase64, 'utf-8', 'base64'
    EXEC sp_OAGetProperty @gzip, 'LastMethodSuccess', @iTmp0 OUT
    IF @iTmp0 = 0
      BEGIN
        EXEC sp_OAGetProperty @gzip, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @gzip
        RETURN
      END


    PRINT 'Decompressed string:'

    PRINT @decompressed

    EXEC @hr = sp_OADestroy @gzip


END
GO