读书人

SQL Server中施行正则表达式

发布时间: 2012-11-16 14:12:15 作者: rapoo

SQL Server中执行正则表达式

-- =============================================-- Author:<liudong>-- Create date: <2012/11/06>-- Description:<sql正则表达式>-- =============================================CREATE FUNCTION Reg (      @pattern varchar(2000),      @matchstring varchar(8000)  )  returns int  as   begin      declare @objRegexExp int      declare @strErrorMessage varchar(255)      declare @hr int,@match bit      exec @hr= sp_OACreate 'VBScript.RegExp', @objRegexExp out      if @hr = 0           exec @hr= sp_OASetProperty @objRegexExp, 'Pattern', @pattern      if @hr = 0           exec @hr= sp_OASetProperty @objRegexExp, 'IgnoreCase', 1      if @hr = 0           exec @hr= sp_OAMethod @objRegexExp, 'Test', @match OUT, @matchstring      if @hr <>0       begin          return null      end      exec sp_OADestroy @objRegexExp      return @match  end

函数结果返回 1 ,验证成功。

如果执行上面的函数报如下错误:

USE master GO sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'Ole Automation Procedures', 1; GO RECONFIGURE; GO sp_configure 'Ad Hoc Distributed Queries', 1; GO RECONFIGURE; GO --查询配置信息 RECONFIGURE; EXEC sp_configure;


测试语句(假如要查找Users表所有用户名为存英文的用户内):

SELECT * FROM Users WHERE dbo.Reg('^[a-zA-Z]+$',UserName)=1

读书人网 >SQL Server

热点推荐