zoukankan      html  css  js  c++  java
  • [Database] SqlServer: SQL Server 2005 中使用正则表达式匹配

    SQL Server 2005 中使用正则表达式匹配

    CLR 用户定义函数只是在 .NET 程序集中定义的静态方法。CREATE FUNCTION 语句已扩展为支持创建 CLR 用户定义函数。

    1、创建数据库项目

      

    2、添加用户定义函数

      

    以下是演示代码:

    Code
    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Data.SqlTypes;
    using Microsoft.SqlServer.Server;
    using System.Text.RegularExpressions;

    // 示意代码
    public partial class UserDefinedFunctions
    {
        
    public static readonly RegexOptions Options = RegexOptions.IgnorePatternWhitespace | RegexOptions.Singleline;

        [Microsoft.SqlServer.Server.SqlFunction]
        
    public static string RegexValue(SqlChars input, SqlString pattern)
        {
            Regex regex 
    = new Regex(pattern.Value, Options);

            
    return  regex.Match(new string(input.Value)).Value;
        }
    }

    3、将自定义函数关联到数据库

      

    4、Sql 查询分析器

        

    为了确保SQL可以执行托管代码,执行下面的语句:

    EXEC sp_configure 'clr enabled', 1

    sql 如下:
    select dbo.RegexValue('2008-09-02',N'\d{4}') from Table

    =============================================

  • 相关阅读:
    java中==和equels的区别
    synchronized的用法及原理
    分库分表之Mycat实现
    Mysql架构和索引及性能优化
    Java内存模型与反向代理服务器Nginx
    Spring基础知识
    使用和理解线程池
    知识补充(数据库优化、三大范式)
    最大子数组问题,分治法求解
    Mybatis学习笔记
  • 原文地址:https://www.cnblogs.com/abeen/p/1410853.html
Copyright © 2011-2022 走看看