oracle里有现成的正则替换函数REGEXP_REPLACE,可SQL SERVER里没有 只能自己创建一个
--SQL正则替换函数
CREATE Replace
(
@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
--把字段NewsContent中包含 width='***' height='***'/> 的内容替换成 />
查询
Select Replace(NewsContent,'width=([sConten_temp From Encyclopedia_temp
替换
update Encyclopedia_temp set NewsContent = Replace(NewsContent,'width=([
gt;])*>','/>',1,0) where NewsContent LIKE '% width=%'
更多信息请查看IT技术专栏
gt;])*>','/>',1,0) AS NewsConten_temp From Encyclopedia_temp
替换
正则表达式任意内容 update Encyclopedia_temp set NewsContent = Replace(NewsContent,'width=([
gt;])*>','/>',1,0) where NewsContent LIKE '% width=%'
更多信息请查看IT技术专栏
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论