一个用于SQL Server 正则替换的函数

create   function  dbo.regexReplace
(
@source   varchar ( 5000 ),     -- 原字符串
@regexp   varchar ( 1000 ),     -- 正則表換式
@replace   varchar ( 1000 ),    -- 替換值
@globalReplace   bit   =   0 ,    -- 是否是全局替換
@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
GO
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值