sql - 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
解决方案
不要将压缩值括在撇号中。尝试使用 varchar 而不是 nvarchar。
select cast(decompress(0x1F8B08000000000004004B61486548630000FF27F81D06000000) as varchar(max)) as ReadableText