diff --git a/Src/Asp.NetCore2/SqlSugar.OceanBaseForOracle/OceanBase/OceanBaseForOracleProvider.cs b/Src/Asp.NetCore2/SqlSugar.OceanBaseForOracle/OceanBase/OceanBaseForOracleProvider.cs index 295e2c4e5..556ccaef8 100644 --- a/Src/Asp.NetCore2/SqlSugar.OceanBaseForOracle/OceanBase/OceanBaseForOracleProvider.cs +++ b/Src/Asp.NetCore2/SqlSugar.OceanBaseForOracle/OceanBase/OceanBaseForOracleProvider.cs @@ -209,23 +209,8 @@ namespace SqlSugar.OceanBaseForOracle 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)) - .OrderBy(it => new List() { + orderParameters = parameters.Where(it => sql.Contains(it.ParameterName)) + .OrderBy(it => new List() { 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+"&"), - }.Where(it=>it!=0).Min()).ToList(); - } + }.Where(it => it != 0).Min()).ToList(); 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); sqlCommand.CommandType = this.CommandType;