В oracle есть хранимая процедура, которая возвращает данные таблицы на основе значения (имени таблицы).Он работает нормально, но в одном из немногих случаев, если я передам tableName1
, он даст правильные данные, а во второй раз tableName2
, он даст правильные данные, но со столбцами tableName1
.
Что-то не так с моим кодом или кеширование сайтов динамических вызовов?
Когда я тестировал хранимую процедуру из Toad с тем же экземпляром, он возвращает правильные данные с правильными заголовками.
Рассмотрим каждый метод на отдельном уровне (контроллер> Бизнес> Уровень данных).
//controller
[AcceptVerbs("Get")]
public IHttpActionResult GetTableData(string tableName)
{
return Ok(GetTableData(tableName));
}
//business layer
public IList<dynamic> GetTableData(string tableName)
{
//using petaPoco ORM
IList<dynamic> result = GetData<dynamic>GetData("StoredProc_NAME",new {sp_param_tableName = tableName});
return result;
}
//data layer
List<TEntity> GetData<TEntity>(string sqlScript, params object[] param)
{
using (PetaPoco.Database PpDBObject= GetPetaPocoDatabaseObject())
{
return PpDBObject.Fetch<TEntity>(sqlScript, param);
}
}