sqlserver 运行正則表達式,调用c# 函数、代码
--1.新建SqlServerExt项目,编写 C# 方法生成 SqlServerExt.dll 文件
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Text.RegularExpressions;
using Microsoft.SqlServer.Server;
namespace Ext
{
public static partial class DataBase
{
/// <summary>
/// 正則表達式
/// </summary>
/// <param name="input">输入字符</param>
/// <param name="pattern">正則表達式</param>
/// <returns></returns>
[Microsoft.SqlServer.Server.SqlFunction]
public static SqlBoolean Regex(SqlChars input, SqlString pattern)
{
try
{
Regex regex = new Regex(pattern.Value);
return new SqlBoolean(regex.IsMatch(new string(input.Value)));
}
catch
{
return new SqlBoolean(false);
}
}
}
}
--2.在SqlServer 中注冊程序集
CREATE ASSEMBLY Udf
FROM 'D:\.......\SqlServerExt.dll'
WITH PERMISSION_SET = SAFE;
--2.1 删除已注冊的程序集 Udf
--DROP ASSEMBLY Udf;
--3.创建一个sql 函数
CREATE FUNCTION Regex
(
@input NVARCHAR(4000) ,
@pattern nvarchar(4000)
)
RETURNS bit
AS
EXTERNAL NAME [Udf].[Ext.DataBase].[Regex] ;
--EXTERNAL NAME [Sql中程序集名].[C#命名空间.C#类名].[C#方法名]
--3.1 删除函数
--DROP FUNCTION Regex;
--4.測试正则
--4.1 匹配全部数字
select dbo.regex('123asd123','^\d+$');
select dbo.regex('123000123','^\d+$');
--4.2 查询mytable表中mycol字段中,包括全部数字的记录
select top 10 * from [mytable] where dbo.regex([mycol],'^\d+$');
--5.运行 自己定义函数异常时
--消息 6263。级别 16,状态 1,第 2 行
--禁止在 .NET Framework 中运行用户代码。启用 "clr enabled" 配置选项。
/*
--出现例如以下提示时,运行下方代码
--消息 6263,级别 16,状态 1,第 2 行
--禁止在 .NET Framework 中运行用户代码。启用 "clr enabled" 配置选项。
exec sp_configure 'show advanced options', '1';
go
reconfigure;
go
exec sp_configure 'clr enabled', '1'
go
reconfigure;
exec sp_configure 'show advanced options', '1';
go
*/
sqlserver 运行正則表達式,调用c# 函数、代码的更多相关文章
- Java正則表達式语法
Java正則表達式语法 字符 说明 \ 将下一字符标记为特殊字符.文本.反向引用或八进制转义符.比如,"n"匹配字符"n"."\n"匹配换行 ...
- javascript——正則表達式
正則表達式(RegExp对象):主要用于表单验证 1.创建正則表達式: (1).var ret = /pattern/; pattern是内容.能够是正則表達式的内容,能够是字符或是其它的内容 (2) ...
- PHP第九课 正則表達式在PHP中的使用
今天内容 1.正則表達式 2.数学函数 3.日期函数 4.错误处理 正則表達式: 1.模式修正符 2.五个经常使用函数 另外一个正則表達式的站点:http://www.jb51.net/tools/z ...
- javascript 正則表達式补充
定义 JavaScript种正則表達式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串 1. 构造函数 var reg=new RegExp('<%[^%>]+%&g ...
- 黑马程序猿————Java基础日常笔记---反射与正則表達式
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 黑马程序猿----Java基础日常笔记---反射与正則表達式 1.1反射 反射的理解和作用: 首 ...
- 【C/C++学院】0904-boost智能指针/boost多线程锁定/哈希库/正則表達式
boost_array_bind_fun_ref Array.cpp #include<boost/array.hpp> #include <iostream> #includ ...
- Python——正則表達式(2)
本文译自官方文档:Regular Expression HOWTO 參考文章:Python--正則表達式(1) 全文下载 :Python正則表達式基础 ======================== ...
- Python正則表達式:怎样使用正則表達式
正則表達式(简称RE)本质上能够看作一个小的.高度专业化的编程语言,在Python中能够通过re模块使用它.使用正則表達式,你须要为想要匹配的字符串集合指定一套规则,字符串集合能够包括英文句子.e-m ...
- JavaScript使用正則表達式
2.0 简单介绍 正則表達式是能够用来查找与给定模式匹配的文本的搜索模式.比如,在上一章中,我们在一个较长的字符串中查找子字符串Cookbook: var testValue = "This ...
随机推荐
- ArchLinux dwm的安装和配置
dwm官网:https://dwm.suckless.org/ dwm是一个简洁的平铺式窗口管理器 配置简单,使用便捷,没有多少依赖,占用内存非常小 总之dwm正合口味 安装方法 首先在官网下载dwm ...
- Ehcache学习总结(1)--Ehcache入门介绍
Ehcache是现在最流行的纯Java开源缓存框架,配置简单.结构清晰.功能强大,最初知道它,是从hibernate的缓存开始的.网上中文的EhCache材料以简单介绍和配置方法居多,如果你有这方面的 ...
- 智能指针的->和 * 重载
- android-继承BaseAdapter--自己定义适配器,getView运行多次的解决方法
定义的getView运行多次的ListView布局: <ListView android:id="@+id/lv_messages" android:layout_width ...
- 翻翻git之---炫酷的自己定义翻滚View TagCloudView
转载请注明出处:王亟亟的大牛之路 周一好,又到了每周最困的一天.近期都被啮齿类动物搞的累死,废话不多,今天上一个自己定义的ViewGroup实现一个3D球形集合. 效果图: 效果还不错,能够作为短小文 ...
- vue23:vue-loader
vue-loader: 其他loader -> css-loader.url-loader.html-loader..... 后台: nodeJs(模块化) -> require expo ...
- Id选择器和Class选择器
http://www.runoob.com/css/css-id-class.html http://www.w3school.com.cn/css/css_syntax_id_selector.as ...
- Array 对象常用的方法总结
shift:删除原数组的第一项,返回删除元素的值:如果数组为空则返回undefined var arr = [1, 2, 3, 4, 5]; var out = arr.shift(); consol ...
- Vue中对data的操作
1. {{a}} var vm = new Vue({ el: '#app', data: { a: { a: 1, b: 2 } } }) vm.a.c = 'sadoisad' // 按理说是 ...
- 搭建专属于自己的Leanote云笔记本
搭建专属于自己的Leanote云笔记本 Leanote 依赖 MongoDB 作为数据存储,下面开始安装 MongoDB: 下载 MongoDB 进入 /home 目录,并下载 MongoDB: cd ...