自定义sql server 替换函数

create function dbo.regexReplace
None.gif(
None.gif
@source varchar(5000), --原字符串
None.gif
@regexp varchar(1000), --正则表达式
None.gif
@replace varchar(1000), --替换值
None.gif
@globalReplace bit = 0, --是否是全局替换
None.gif
@ignoreCase bit = 0 --是否忽略大小?
None.gif
)
None.gif
returnS varchar(1000) AS
None.gif
begin
None.gif
declare @hr integer
None.gif
declare @objRegExp integer
None.gif
declare @result varchar(5000)
None.gif
None.gif
exec @hr = sp_OACreate 'VBScript.RegExp', @objRegExp OUTPUT
None.gif
IF @hr <> 0 begin
None.gif
exec @hr = sp_OADestroy @objRegExp
None.gif
return null
None.gif
end
None.gif
exec @hr = sp_OASetProperty @objRegExp, 'Pattern', @regexp
None.gif
IF @hr <> 0 begin
None.gif
exec @hr = sp_OADestroy @objRegExp
None.gif
return null
None.gif
end
None.gif
exec @hr = sp_OASetProperty @objRegExp, 'Global', @globalReplace
None.gif
IF @hr <> 0 begin
None.gif
exec @hr = sp_OADestroy @objRegExp
None.gif
return null
None.gif
end
None.gif
exec @hr = sp_OASetProperty @objRegExp, 'IgnoreCase', @ignoreCase
None.gif
IF @hr <> 0 begin
None.gif
exec @hr = sp_OADestroy @objRegExp
None.gif
return null
None.gif
end
None.gif
exec @hr = sp_OAMethod @objRegExp, 'Replace', @result OUTPUT, @source, @replace
None.gif
IF @hr <> 0 begin
None.gif
exec @hr = sp_OADestroy @objRegExp
None.gif
return null
None.gif
end
None.gif
exec @hr = sp_OADestroy @objRegExp
None.gif
IF @hr <> 0 begin
None.gif
return null
None.gif
end
None.gif
None.gif
return @result
None.gif
end
None.gif
GO

调用方法:select dbo.regexReplace('aa6bb4cc7c','\d+','aa',1,1)
输出结果:aaaabbaaccaac
SQL也可以用正则。。真是太好了,
用这个之前要到,配置工具--SQL server外围应用配置器里把一个OLE自动化的服务启用。
测试完毕,谢谢!

转载于:https://my.oschina.net/u/175660/blog/57417

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值