mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-04-05 17:37:58 +08:00
commit
10f36ba5f6
@ -209,23 +209,8 @@ namespace SqlSugar.OceanBaseForOracle
|
|||||||
p.ParameterName = this.SqlParameterKeyWord + p.ParameterName;
|
p.ParameterName = this.SqlParameterKeyWord + p.ParameterName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//由于Odbc参数都为?,用顺序进行匹配,则进行参数排序
|
orderParameters = parameters.Where(it => sql.Contains(it.ParameterName))
|
||||||
string reg = string.Join('|', parameters.Select(m => m.ParameterName));
|
.OrderBy(it => new List<int>() {
|
||||||
//通过正则匹配,为顺序输出,相同也会重复匹配
|
|
||||||
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))
|
|
||||||
.OrderBy(it => new List<int>() {
|
|
||||||
sql.IndexOf(it.ParameterName+")"),
|
sql.IndexOf(it.ParameterName+")"),
|
||||||
sql.IndexOf(it.ParameterName+" "),
|
sql.IndexOf(it.ParameterName+" "),
|
||||||
sql.IndexOf(it.ParameterName+"="),
|
sql.IndexOf(it.ParameterName+"="),
|
||||||
@ -235,13 +220,12 @@ namespace SqlSugar.OceanBaseForOracle
|
|||||||
sql.IndexOf(it.ParameterName+","),
|
sql.IndexOf(it.ParameterName+","),
|
||||||
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, "?");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
OdbcCommand sqlCommand = new OdbcCommand(sql, (OdbcConnection)this.Connection);
|
OdbcCommand sqlCommand = new OdbcCommand(sql, (OdbcConnection)this.Connection);
|
||||||
sqlCommand.CommandType = this.CommandType;
|
sqlCommand.CommandType = this.CommandType;
|
||||||
|
Loading…
Reference in New Issue
Block a user