zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    2015.07-2015.08
    the last lecture
    强化的单例属性_Effective Java
    Socket通信客户端设计(Java)
    静态工场方法代替构造器
    如何控制Java中的线程,总结了3种方法...
    如何快速转型,比如C#...to...Java
    C#中var和dynamic
    How to use the Visual Studio
    mark blog
  • 原文地址:https://www.cnblogs.com/linweifan/p/5032132.html
Copyright © 2011-2022 走看看