首页 > 解决方案 > SQL 解压 GZIP

问题描述

我们需要将 GZIP 压缩数据发送到我们的总部,并以压缩字符串的形式接收回复。很容易将其转换为我们需要发送的字符串:

declare @MyTable_Compressed as table (a varbinary(max))
insert into @MyTable_Compressed
select compress('abc') from @MyTable_Uncompressed

然而,我们的 HO 现在将他们的字符串作为回复发回给我们:

“0x1F8B08000000000004004B61486548630000FF27F81D06000000”

如何解压缩此字符串,以便纯文本读取“def”?

我试过这个,但我得到一个错误(参数数据类型 varchar 对 Decompress 函数的参数 1 无效。)

select cast(decompress('0x1F8B08000000000004004B61486548630000FF27F81D06000000') as nvarchar(max)) as ReadableText

标签: sqlcompression

解决方案


不要将压缩值括在撇号中。尝试使用 varchar 而不是 nvarchar。

select cast(decompress(0x1F8B08000000000004004B61486548630000FF27F81D06000000) as varchar(max)) as ReadableText


推荐阅读