当前位置: 移动技术网 > IT编程>数据库>MSSQL > SQLSERVER中正则表达式封装使用

SQLSERVER中正则表达式封装使用

2018年04月09日  | 移动技术网IT编程  | 我要评论

鳄鱼肉止咳,袁晓欧,食全食美官网

封装好的正则表达式供SQLSERVER调用

 

打开数据库->可编程性->函数->标量值函数->新建标量值函数名

 

USE [数据库]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER function [dbo].[标量值函数名]

(

@source ntext, --原字符串

@regexp varchar(1000), --正则表达式

@replace varchar(1000), --替换值

@globalReplace bit = 1, --是否是全局替换

@ignoreCase bit = 0 --是否忽略大小写

)

returnS varchar(1000) AS

begin

declare @hr integer

declare @objRegExp integer

declare @result varchar(5000)

exec @hr = sp_OACreate 'VBScript.RegExp', @objRegExp OUTPUT

IF @hr <> 0 begin

exec @hr = sp_OADestroy @objRegExp

return null

end

exec @hr = sp_OASetProperty @objRegExp, 'Pattern', @regexp

IF @hr <> 0 begin

exec @hr = sp_OADestroy @objRegExp

return null

end

exec @hr = sp_OASetProperty @objRegExp, 'Global', @globalReplace

IF @hr <> 0 begin

exec @hr = sp_OADestroy @objRegExp

return null

end

exec @hr = sp_OASetProperty @objRegExp, 'IgnoreCase', @ignoreCase

IF @hr <> 0 begin

exec @hr = sp_OADestroy @objRegExp

return null

end

exec @hr = sp_OAMethod @objRegExp, 'Replace', @result OUTPUT, @source, @replace

IF @hr <> 0 begin

exec @hr = sp_OADestroy @objRegExp

return null

end

exec @hr = sp_OADestroy @objRegExp

IF @hr <> 0 begin

return null

end

return @result

end

 


如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网