SQLSERVER中正则表达式封装使用

页面导航:首页 > 数据库 > MsSql > SQLSERVER中正则表达式封装使用

SQLSERVER中正则表达式封装使用

来源: 作者: 时间:2016-01-13 16:40 【

封装好的正则表达式供SQLSERVER调用打开数据库-可编程性-函数-标量值函数-新建标量值函数名USE [数据库]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER function [dbo].[标量值函数名](@sour...
封装好的正则表达式供SQLSERVER调用
 
打开数据库->可性->函数->标量值函数->新建标量值函数名
 
USE []
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER function [dbo].[标量值函数名]

(

@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

 


Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<