mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-07-17 19:37:34 +08:00
commit
10f36ba5f6
@ -209,21 +209,6 @@ namespace SqlSugar.OceanBaseForOracle
|
|||||||
p.ParameterName = this.SqlParameterKeyWord + p.ParameterName;
|
p.ParameterName = this.SqlParameterKeyWord + p.ParameterName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//由于Odbc参数都为?,用顺序进行匹配,则进行参数排序
|
|
||||||
string reg = string.Join('|', parameters.Select(m => m.ParameterName));
|
|
||||||
//通过正则匹配,为顺序输出,相同也会重复匹配
|
|
||||||
Regex parametersRegx = new Regex(reg);
|
|
||||||
MatchCollection matches = parametersRegx.Matches(sql);
|
|
||||||
foreach (Match pMatch in matches)
|
|
||||||
{
|
|
||||||
SugarParameter mP = parameters.FirstOrDefault(m => m.ParameterName == pMatch.Value);
|
|
||||||
if (mP != null)
|
|
||||||
{
|
|
||||||
orderParameters.Add(mP);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (orderParameters.Select(it => it.ParameterName).GroupBy(it => it).Where(it => it.Count() > 1).Any())
|
|
||||||
{
|
|
||||||
orderParameters = parameters.Where(it => sql.Contains(it.ParameterName))
|
orderParameters = parameters.Where(it => sql.Contains(it.ParameterName))
|
||||||
.OrderBy(it => new List<int>() {
|
.OrderBy(it => new List<int>() {
|
||||||
sql.IndexOf(it.ParameterName+")"),
|
sql.IndexOf(it.ParameterName+")"),
|
||||||
@ -236,7 +221,6 @@ namespace SqlSugar.OceanBaseForOracle
|
|||||||
sql.IndexOf(it.ParameterName+"|"),
|
sql.IndexOf(it.ParameterName+"|"),
|
||||||
sql.IndexOf(it.ParameterName+"&"),
|
sql.IndexOf(it.ParameterName+"&"),
|
||||||
}.Where(it => it != 0).Min()).ToList();
|
}.Where(it => it != 0).Min()).ToList();
|
||||||
}
|
|
||||||
foreach (var param in parameters.OrderByDescending(it => it.ParameterName.Length))
|
foreach (var param in parameters.OrderByDescending(it => it.ParameterName.Length))
|
||||||
{
|
{
|
||||||
sql = sql.Replace(param.ParameterName, "?");
|
sql = sql.Replace(param.ParameterName, "?");
|
||||||
|
Loading…
Reference in New Issue
Block a user