Mssql中实现用正则表达式更新字段值

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  

-------------------------------------
配置对扩展存储过程的支持
Microsoft SQL Server 2005  -> 配置工具 -> 外围应用配置器 -> 功能的外围应用配置 -> Ole自动化:支持Ole自动化

使用方法:
declare @source nvarchar(4000)
set @source = '<HTML>dsafsdf<HEAD>'
select dbo.regexReplace(@source, '/<[^/>]+/>', '', 1, 1)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值