C#代码:
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Server;
using System.Data.SqlTypes;
using System.Text.RegularExpressions;namespace SQLSignature
{
public partial class SQLSignature
{
[SqlFunction(IsDeterministic = true, DataAccess = DataAccessKind.None)]
public static SqlString fn_SQLSigCLR(SqlString querystring)
{
return (SqlString)Regex.Replace(
querystring.Value,
@"([\s,(=<>!](?![^\]]+[\]]))(?:(?:(?:(?:#
)(?:([N])?(')(?:[^']|'')*('))(?#
)|(?:0x[\da-fA-F]*)(?#
)|(?:[-+]?(?:(?:[\d]*\.[\d]*|[\d]+)(?#
)(?:[eE]?[\d]*)))(?#
)|(?:[~]?[-+]?(?:[\d]+))(?#
))(?:[\s]?[\+\-\*\/\%\&\|\^][\s]?)?)+(?#
))",
@"$1$2$3#$4");
} [SqlFunction(IsDeterministic = true, DataAccess = DataAccessKind.None)]
public static SqlString fn_RegexReplace(SqlString input, SqlString pattern, SqlString replacement)
{
return (SqlString)Regex.Replace(input.Value, pattern.Value, replacement.Value);
}
}
}SQL 代码:
create function dbo.fn_RegexReplace
(
@input as nvarchar(max),
@pattern as nvarchar(max),
@replacement as nvarchar(max)
)
returns nvarchar(max)
with returns null on null input
external name SQLSignature.[SQLSignature].fn_RegexReplace
go报错信息:
消息 6505,级别 16,状态 1,过程 fn_SQLSigCLR,第 2 行
在程序集 'SQLSignature' 中找不到类型 'SQLSignature'。
消息 6505,级别 16,状态 1,过程 fn_RegexReplace,第 2 行
在程序集 'SQLSignature' 中找不到类型 'SQLSignature'。请高手帮帮小弟看看错在哪里?
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Server;
using System.Data.SqlTypes;
using System.Text.RegularExpressions;namespace SQLSignature
{
public partial class SQLSignature
{
[SqlFunction(IsDeterministic = true, DataAccess = DataAccessKind.None)]
public static SqlString fn_SQLSigCLR(SqlString querystring)
{
return (SqlString)Regex.Replace(
querystring.Value,
@"([\s,(=<>!](?![^\]]+[\]]))(?:(?:(?:(?:#
)(?:([N])?(')(?:[^']|'')*('))(?#
)|(?:0x[\da-fA-F]*)(?#
)|(?:[-+]?(?:(?:[\d]*\.[\d]*|[\d]+)(?#
)(?:[eE]?[\d]*)))(?#
)|(?:[~]?[-+]?(?:[\d]+))(?#
))(?:[\s]?[\+\-\*\/\%\&\|\^][\s]?)?)+(?#
))",
@"$1$2$3#$4");
} [SqlFunction(IsDeterministic = true, DataAccess = DataAccessKind.None)]
public static SqlString fn_RegexReplace(SqlString input, SqlString pattern, SqlString replacement)
{
return (SqlString)Regex.Replace(input.Value, pattern.Value, replacement.Value);
}
}
}SQL 代码:
create function dbo.fn_RegexReplace
(
@input as nvarchar(max),
@pattern as nvarchar(max),
@replacement as nvarchar(max)
)
returns nvarchar(max)
with returns null on null input
external name SQLSignature.[SQLSignature].fn_RegexReplace
go报错信息:
消息 6505,级别 16,状态 1,过程 fn_SQLSigCLR,第 2 行
在程序集 'SQLSignature' 中找不到类型 'SQLSignature'。
消息 6505,级别 16,状态 1,过程 fn_RegexReplace,第 2 行
在程序集 'SQLSignature' 中找不到类型 'SQLSignature'。请高手帮帮小弟看看错在哪里?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货