繁体   English   中英

使用C#托管代码提取sql字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM