-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathreadme.txt
47 lines (37 loc) · 1.41 KB
/
readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
[Info]
This assembly include two function for compress and decompress stream.
fnCompress - compress input stream and return compressed varbinary(max).
fnDecompress - decompress input stream and return decompressed varbinary(max).
[Install]
sp_configure 'advanced options',1;
GO
reconfigure with override;
GO
sp_configure 'clr enabled',1
GO
reconfigure with override;
GO
create assembly [DataCompression]
from 'c:\clr\DataCompression_x64.dll'
with permission_set = safe;
GO
create function dbo.fnCompress(@inputStream varbinary(max)) returns varbinary(max)
as external name DataCompression.DataCompression.fnCompress
GO
create function dbo.fnDecompress(@inputStream varbinary(max)) returns varbinary(max)
as external name DataCompression.DataCompression.fnDecompress
GO
--------
Examples
--------
declare @inputData nvarchar(4000);
declare @outData nvarchar(4000);
declare @cData varbinary(max)
select @inputData = replicate('Welcome!',500);
select datalength(@inputData) as [input DataLength],hashbytes('MD5',@inputData) as [Input HashMD5]
select @cData = dbo.fnCompress(cast(@inputData as varbinary(max)));
select datalength(@cData) as [compress DataLength],hashbytes('MD5',@cData) as [Compress HashMD5]
select @outData = cast(dbo.fnDecompress(@cData) as nvarchar(max));
select datalength(@outData) as [Output DataLength],hashbytes('MD5',@outData) as [Output HashMD5]
select iif(@outData = @inputData,'Equal','Not Equal') as Compare
GO