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 ...
随机推荐
- 百度IOT
万物互联 http://www.jianshu.com/p/3d9846bf42bd 百度天工
- NYOJ_77 开灯问题
题目地址 分析: 用一个数组来保存每盏灯的操作的次数.推断奇偶就可以推断灯的状态. 最后的输出格式须要注意一下空格的位置,思路就是现输出一个.剩下来的输出在前面加一个空格. 空格用_表示: 1_3_5 ...
- [Recompose] Refactor React Render Props to Streaming Props with RxJS and Recompose
This lesson takes the concept of render props and migrates it over to streaming props by keeping the ...
- iOS使用Instrument的Leaks查找代码内存泄露
Here are some tips for finding leaks in our project: 1. 打开Instruments调试工具控制栏, Xcode -> Open Dev T ...
- Install the IIS 6.0 Management Compatibility Components in Windows 7 or in Windows Vista from Control Panel
https://technet.microsoft.com/en-us/library/bb397374(v=exchg.80).aspx Install the IIS 6.0 Management ...
- 7.第一次使用java连接mongodb遇到的问题
转自:https://blog.csdn.net/u010523770/article/details/54585883 新版本的mongodb的驱动包是依赖bson.jar和mongodb_driv ...
- springMVC No mapping found for HTTP request with URI
转载自:http://blog.sina.com.cn/s/blog_534f69a00101332u.html 1.问题: No mapping found for HTTP request wit ...
- ZOJ 3175 Number of Containers 分块
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3216 乱搞的...watashi是分块做的...但我并不知道什么是分块...大 ...
- UDP广播
客户端UDP发送消息至服务器端服务器IP:192.168.1.114服务器端口:2014 客户端 Socket socket = new Socket(AddressFamily.InterNetwo ...
- nuxt 关闭ESlint 语法检测
学习nuxt中在自己编写search组件的时候出现了各种类似于Expected indentation of 0 spaces but found 4的问题 上网搜是因为ESlint语法检测产生的问题 ...