Sql Server 使用正则表达式

Posted 派大星帅帅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sql Server 使用正则表达式相关的知识,希望对你有一定的参考价值。

 

create function dbo.RegexMatch (    
 
@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

调用

SELECT * FROM table where dbo.RegexMatch(正则表达式,字段名)=0

如果执行报错 执行这个语句

--开启 Ole Automation Procedures
sp_configure show advanced options, 1;
GO
RECONFIGURE;
GO
sp_configure Ole Automation Procedures, 1;
GO
RECONFIGURE;
GO
EXEC sp_configure Ole Automation Procedures;
GO

--关闭 Ole Automation Procedures
sp_configure show advanced options, 1;
GO
RECONFIGURE;
GO
sp_configure Ole Automation Procedures, 1;
GO
RECONFIGURE;
GO
EXEC sp_configure Ole Automation Procedures;
GO

--关闭高级选项
sp_configure show advanced options, 0;
GO
RECONFIGURE;
GO

 

 

以上是关于Sql Server 使用正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

Sql Server 使用正则表达式

带正则表达式的参数化 SQL、ORACLE 与 SQL Server

在 SQL Server 中使用正则表达式

如何在 SQL Server 中使用正则表达式检查字符串是不是为数字?

SQL Server:选择列中多次出现正则表达式匹配的行

sql server 查找与替换 正则表达式 匹配