Access教程
  • sql server教程
  • MySQL教程 DB2教程 ORACLE教程
    当前位置:教程 > 数据库 > sql server教程 > 正文

    正则表达式在MS SQL Server中的应用

    编辑:教程网 来源:网络 时间:2013年08月16日 14:27
    Oracle数据库默认就提供了正则表达(详见维基百科)式支持(如:REGEXP_LIKE(),REGEXP_INSTR(),REGEXP_SUBSTR(),REGEXP_REPLACE()),而不思进的MS SQL Server却没有直接提供。不过MS留了一手,那就是CLR(是公共语言运行时,Common Language Runtime)。SQL SERVER 2005及以上的版本都可以运用此方法。MS是为了推.NET而这样干的吗? 言归正传,我这里完全参照Oracle对MS SQL Server进行了正则表达式支持实现。 功能说明: 1.Regexp_Like(soure,pattern) 检查源字符串中是否存在匹配正则表达式的字符串,存在返回1,不存在返回0 source:源字符串 pattern:正则表达式 2.Regexp_InStr(soure,pattern,position,num) 匹配源字符串与正则表达式,返回匹配的起始位置值。 source:源字符串 pattern:正则表达式 possition:字符串开始位置 num:返回第n个匹配 3.Regexp_InStr2(soure,pattern) 匹配源字符串与正则表达式,返回第1个匹配的起始位置值。 (实际上是Regexp_InStr()的重载。因MS SQL不支持重载,所以另外命名) www.it165.net source:源字符串 pattern:正则表达式 4.Regexp_SubStr(soure,pattern) 匹配源字符串与正则表达式,返回匹配的子字符串。 source:源字符串 pattern:正则表达式 5.Regexp_Replace(soure,pattern,replace_string) 匹配源字符串与正则表达式,返回值等于将匹配部分替换为指定字符串的新字符串。 source:源字符串 pattern:正则表达式 replace_string:用于替换的字符串 部署: 1.需部署在数据库服务器上; 2.环境要求:.Net Framework 3.5 (操作系统只测试过64位,32位未测试过); 3.下载程序,放到C:\WINDOWS目录(当然,也可以是其它目录,但需要自己改部署脚本);程序下载链接 4.下载部署脚本;部署脚本下载链接 5.运行SQL Server Management Studio,登录并指定要使用正则表达式的库,打开并执行部署脚本即可。 验证: 说明: 1. 此处使用Oracle原生函数执行结果和自行编写的CLR执行结果进行对比; 2. 该正则表达式'(\w)\1'作用为检查用户表中姓名包含叠字的用户; Oracle:

    Sql Server:

    结果一致。
  • 原文来自 教程网 转载请注明:http://www.websmill.com/shujuku/sql_server/32325.html

  • 上一篇:数据库交易记录已满的可能解决方式
  • 下一篇:没有了