SqlServer正则特换函数
时间:2021-07-01 10:21:17
帮助过:14人阅读
function dbo.regexreplace
(
@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
go
SqlServer正则特换函数
标签:returns 忽略 logs null ext regexp span ase blog