资 源 简 介
翻译 maninwest@Codeforge 作者 Brad Joss@Codeproject
适用于Zip 压缩的和正则表达式评估的SQL CLR 函数。
介绍“
附件中的代码展示了 SharpZipLib zip 压缩库作为线程安全通用语言运行时(CLR) SQL 函数。库中包含的其他函数用于在SQL内进行正则表达式(RegEx) 评估。 通过以下示例代码,可以很快了解:
-- Zip Example --
DECLARE @input nvarchar(4000) = REPLICATE(N"HELLO 1 HELLO 2 HELLO 3 HELLO", 100)
DECLARE @zipped nvarchar(1000) = dbo.ZipString(@input)
SELECT
@zipped, -- eJztyTENACAMADArswBoIN ...
LEN(@input), -- 2900 bytes
LEN(@zipped), -- 68 bytes
100.0 - (100.0 * ((LEN(@zipped)*1.0)/(LEN(@input)*1.0))), -- 97.6% Reduction
IIF(@input = dbo.UnzipString(@zipped), "PASS", "FAIL") -- Pass
-- RegEx Example --
select dbo.RegexMatchCount([Phone], "d") as [DIGIT_COUNT]
from #Users
背景
注意:此代码仅在使用 SharpZipLib 时有用。
虽然 SQL Server 原生支持数据压缩存储,但是通过此库,我们可以实现超越任何单一应用层的目标。此代码的实际应用可包括:
1客户端端点和数据库需要共享大量高度可压缩数据 (如 XML 或HTML) ,且 SQL Server 无需经常访问数据的