SQL Server
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:
- The input string is decoded from the specified encoding (Base64 in this example) to obtain the compressed binary data.
- The binary data is decompressed using the Gzip algorithm.
- 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
-- 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