@@ -42,7 +42,8 @@ public class SqlTextNormalizer
4242 private static Regex _emptyString = new Regex ( "\\ '\\ '" , RegexOptions . Compiled ) ;
4343 private static Regex _unicodeConstant = new Regex ( "N{STR}" , RegexOptions . Compiled ) ;
4444 private static Regex _stringConstant = new Regex ( "(')(((?!\\ 1).|\\ 1{2})*)\\ 1" , RegexOptions . Compiled | RegexOptions . Singleline ) ;
45- private static Regex _paramNameValue = new Regex ( @"@(?<paramname>\w+)+\s?=\s?['[""](?<paramvalue>([^'\]""])+)['\]""]" , RegexOptions . Compiled | RegexOptions . Singleline ) ;
45+ private static Regex _paramNameValueStr = new Regex ( @"@(?<paramname>\w+)\s?=\s?[N]?['[""](?<paramvalue>([^'\]""])+('{2})?)?['\]""]" , RegexOptions . Compiled | RegexOptions . Singleline ) ;
46+ private static Regex _paramNameValueNum = new Regex ( @"@(?<paramname>\w+)\s?=\s?(?<paramvalue>([0-9.])+)" , RegexOptions . Compiled | RegexOptions . Singleline ) ;
4647 private static Regex _binaryConstant = new Regex ( "0X([0-9ABCDEF])+" , RegexOptions . Compiled ) ;
4748 private static Regex _numericConstant = new Regex ( "(?<prefix>[\\ (\\ s,=\\ -><\\ !\\ &\\ |\\ +\\ *\\ /\\ %\\ ~\\ $])(?<digits>[\\ -\\ .\\ d]+)" , RegexOptions . Compiled ) ;
4849 private static Regex _inClause = new Regex ( "IN\\ s*\\ (\\ s*\\ {.*\\ }\\ s*\\ )" , RegexOptions . Compiled | RegexOptions . Singleline ) ;
@@ -263,7 +264,8 @@ public NormalizedSqlText NormalizeSqlText(string sql, int spid, bool spreadCsv)
263264 }
264265
265266
266- result . NormalizedText = _paramNameValue . Replace ( result . NormalizedText , "@${paramname} = {STR}" ) ;
267+ result . NormalizedText = _paramNameValueStr . Replace ( result . NormalizedText , "@${paramname} = {STR}" ) ;
268+ result . NormalizedText = _paramNameValueStr . Replace ( result . NormalizedText , "@${paramname} = {NUM}" ) ;
267269 result . NormalizedText = _emptyString . Replace ( result . NormalizedText , "{STR}" ) ;
268270 result . NormalizedText = _stringConstant . Replace ( result . NormalizedText , "{STR}" ) ;
269271 result . NormalizedText = _unicodeConstant . Replace ( result . NormalizedText , "{NSTR}" ) ;
0 commit comments