SQLSERVER中正则表达式封装使用

简介: 原文:SQLSERVER中正则表达式封装使用封装好的正则表达式供SQLSERVER调用 打开数据库->可编程性->函数->标量值函数->新建标量值函数名 USE [数据库]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER function [dbo].
原文: SQLSERVER中正则表达式封装使用

封装好的正则表达式供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

 

目录
相关文章
|
SQL 存储 数据库
盘点现在用的SqlServer 5种分页方式和拉姆达表达式分页,进来看看吧。
盘点现在用的SqlServer 5种分页方式和拉姆达表达式分页,进来看看吧。
(转)使用公用表表达式的递归查询(SQLSERVER2005)
在 SQL Server 2005 中,当某个查询引用递归 CTE 时,它即被称为“递归查询”。递归查询通常用于返回分层数据,例如:显示某个组织图中的雇员或物料清单方案(其中父级产品有一个或多个组件,而那些组件可能还有子组件,或者是其他父级产品的组件)中的数据。
|
SQL 数据库
SQL Server中公用表表达式 CTE 递归的生成帮助数据,以及递归的典型应用
原文:SQL Server中公用表表达式 CTE 递归的生成帮助数据,以及递归的典型应用   本文出处:http://www.cnblogs.com/wy123/p/5960825.html   我们在做开发的时候,有时候会需要一些帮助数据,必须需要连续的数字,连续间隔的时间点,连续的季度日期...
1372 0
|
SQL Java 数据格式
SQL Server2005杂谈(1):使用公用表表达式(CTE)简化嵌套SQL
本文为原创,如需转载,请注明作者和出处,谢谢!     先看下面一个嵌套的查询语句: select * from person.StateProvince where CountryRegionCode in           (select CountryRegionCode from person.CountryRegion where Name like 'C%')     上面的查询语句使用了一个子查询。
1100 0
|
SQL Java Android开发
SQL Server2005杂谈(2):公用表表达式(CTE)的递归调用
本文为原创,如需转载,请注明作者和出处,谢谢! 上一篇:SQL Server2005杂谈(1):使用公用表表达式(CTE)简化嵌套SQL 先看如下一个数据表(t_tree):     上图显示了一个表中的数据,这个表有三个字段:id、node_name、parent_id。
1045 0
|
SQL
SQL Server2005杂谈(3):公用表表达式(CTE)的递归调用
 本文为原创,如需转载,请注明作者和出处,谢谢! 先看如下一个数据表(t_tree):     上图显示了一个表中的数据,这个表有三个字段:id、node_name、parent_id。
1159 0