[英]sql string extraction using c# managed code
我在SQL Server DB项目中有2个功能。
GetCatalogueNo
在函数中编写了Regex模式。
[SqlFunction]
public static SqlString GetCatalogueNo(string originalString)
{
Regex r1 = new Regex("\\d{7}|\\d{3}/\\d{4}");
return r1.Match(originalString).Groups[0].Value;
}
在ExtractText
,我将正则表达式模式作为参数传递。
[SqlFunction]
public static SqlString ExtractText(string originalString, string pattern)
{
Regex r1 = new Regex(pattern);
return r1.Match(originalString).Groups[0].Value;
}
SQL Server上的已编译代码适用于: GetCatalogueNo
SELECT dbo.GetCatalogueNo('xxxxx xxxxxxxxxx 9999999 xxxxxxx xxxxxxx .....')
返回:9999999
SQL Server上的已编译代码不为以下ExtractText
返回任何内容: ExtractText
SELECT dbo.[ExtractText] ('xxxxx xxxxxxxxxx 9999999 xxxxxxx xxxxxxx .....', '\\d{7}|\\d{3}/\\d{4}')
我想知道dbo.[ExtractText]
的第二个参数如何传递以及缺少什么。
取得了相同的结果。 导致此问题的原因是转义字符\\。
SELECT dbo。[ExtractText]('xxxxx xxxxxxxxxx 9999999 xxxxxxx xxxxxxx .....','\\ d {7} | \\ d {3} / \\ d {4}')返回与GetCatalogueNo相同的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.