У меня есть процедура и связанная с ней функция, которая связывает вывод с datatable
. Но при заполнении таблицы данных я получаю ошибку, как показано ниже. Также проверил в Google, но ничего не работает
ora-01002 выборка вне последовательности
Вот ссылка на процедуру
ссылка
Также ниже приведен код для заполнения дататаблицы
public DataTable GetSPANByMZ(string USERTYPE, string SPANTYPE, string MZONE, string OPERATIONTYPE)
{
DataTable dtSPAN = new DataTable();
try
{
DBObject ObjDBObject = new DBObject(strConnectionString);
string strProcedureName = "";
if (SPANTYPE == "INTERCITY" || SPANTYPE == "INTRACITY" || SPANTYPE == "ENTERPRISE")
{
strProcedureName = strPackageName + ".GET_SPAN_BY_MZ";
}
else if (SPANTYPE == "FTTX")
{
strProcedureName = strPackageName + ".GET_FTTX_BY_MZ ";
}
//else
//{
// strProcedureName = strPackageName + ".GET_SPANINFO_BY_SPAN_MZ_LNK";
//}
List<OracleParameter> lstParameters = new List<OracleParameter>();
OracleParameter ObjOracleParameter = new OracleParameter("PUSERTYPE", USERTYPE);
OracleParameter ObjOracleParameter1 = new OracleParameter("POPERATIONTYPE", OPERATIONTYPE);
OracleParameter ObjOracleParameter2 = new OracleParameter("PSPANTYPE", SPANTYPE);
OracleParameter ObjOracleParameter3 = new OracleParameter("PMAINTZONECODE", MZONE);
OracleParameter ObjOracleParameter4 = new OracleParameter("PSPANDATA", OracleDbType.RefCursor, ParameterDirection.Output);
lstParameters.Add(ObjOracleParameter);
lstParameters.Add(ObjOracleParameter1);
lstParameters.Add(ObjOracleParameter2);
lstParameters.Add(ObjOracleParameter3);
lstParameters.Add(ObjOracleParameter4);
dtSPAN = ObjDBObject.ExecuteDataTableProcedure(strProcedureName, lstParameters);
}
catch (Exception e)
{
//throw;
ErrorLog.HandleErrorLog(USERTYPE, "", "GetSPANByMZ", e.Message);
/*
* Error(string LogType, string functionname, string msg)
*/
ApplicationLog.Error("Error", "GetSPANByMZ", e.Message);
}
return dtSPAN;
}
Пожалуйста, предложите