SQL Server 2005: 正则表达式使模式匹配和数据提取变得更容易
2009-02-10 10:20:07 来源:WEB开发网本文讨论:
使用正则表达式进行高效的 SQL 查询
SQL Server 2005 对正则表达式的支持
从 SQL Server 使用 .NET Regex 类
在数据库中有效地使用正则表达式
本文使用了以下技术:
SQL Server 2005,.NET Framework
目录
CLR 用户定义函数
模式匹配
数据提取
模式存储
匹配
在匹配项中进行数据提取
总结
尽管 T-SQL 对多数数据处理而言极其强大,但它对文本分析或操作所提供的支持却很少。尝试使用内置的字符串函数执行任何复杂的文本分析会导致难于调试和维护的庞大的函数和存储过程。有更好的办法吗?
实际上,正则表达式提供了更高效且更佳的解决方案。它在比较文本以便标识记录方面的益处显而易见,但是它的用途并不仅限于此。我们将介绍如何执行各种简单或令人惊异的任务,这些任务在 SQL Server™ 2000 中被视为不切实际或不可能的,但现在由于 SQL Server 2005 对托管公共语言运行库 (CLR) 的支持而可行。
正则表达式对 SQL 来说并非新事物。Oracle 在 10g 中引进了内置的正则表达式,而且许多开源数据库解决方案也使用某种正则表达式库。实际上,正则表达式可在 SQL Server 的早期版本中使用,但是过程的效率很低。
如果使用 sp_OACreate 存储过程,则可以使用任何实现正则表达式的 OLE 自动化对象,但您必须首先创建一个 COM 对象,至少调用 IDispatch 一次,然后销毁此对象。多数情况下,这样做效率太低而且导致了太多性能问题。唯一的备选方案是创建扩展的存储过程。然而,现在有 SQLCLR,CLR 用户定义函数 (UDF),它允许您使用 Microsoft® .NET Framework 创建高效的且减少了出错可能性的函数集。
更多精彩
赞助商链接