Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OracleClient和C#4.0出现溢出错误_C#_.net_C# 4.0_Oracle10g_System.data.oracleclient - Fatal编程技术网

OracleClient和C#4.0出现溢出错误

OracleClient和C#4.0出现溢出错误,c#,.net,c#-4.0,oracle10g,system.data.oracleclient,C#,.net,C# 4.0,Oracle10g,System.data.oracleclient,我正在使用Visual Studio 2010、Oracle Database 10g和library System.Data.OracleClient。我的问题是,当我想在batabase中执行该过程时,会出现溢出错误。我在读,说我需要把数字四舍五入或四舍五入,因为数字太大了。但是我无法访问数据库来更改程序。我得到的值来自OracleParameter,没有方向。你知道我怎样才能解决这个问题吗 objCommand.Connection = objConnection; objCommand.

我正在使用Visual Studio 2010、Oracle Database 10g和library System.Data.OracleClient。我的问题是,当我想在batabase中执行该过程时,会出现溢出错误。我在读,说我需要把数字四舍五入或四舍五入,因为数字太大了。但是我无法访问数据库来更改程序。我得到的值来自OracleParameter,没有方向。你知道我怎样才能解决这个问题吗

objCommand.Connection = objConnection;
objCommand.CommandText = "Procedure_name";
objCommand.CommandType = CommandType.StoredProcedure;
objCommand.Parameters.AddRange(parameters); //parameters is a OracleParameter array. I fill it previously.

objConnection.Open();
objCommand.ExecuteNonQuery(); //Here throw the exception
PS:该过程在PL/SQL中运行良好,最大位数为“1.66529411764706”

PS2:再说一遍,我没有权限更改这个过程。我需要在visual studio中修复此错误

PS3:错误为OCI-22053:溢出错误。这就是我从错误中得到的全部信息:(

谢谢

parameters[0] = CreateParameter(PC_COD_CU, OracleType.VarChar, codCu);
parameters[1] = CreateParameter(PC_COD_EM, OracleType.VarChar, codEm);
parameters[2] = CreateParameter(PN_SACIC, OracleType.Number, ParameterDirection.Output);
parameters[3] = CreateParameter(PN_SAVSF, OracleType.Number, ParameterDirection.Output);
parameters[4] = CreateParameter(PN_MTO_B, OracleType.Number, ParameterDirection.Output);
parameters[5] = CreateParameter(PN_ULT_REM, OracleType.Number, ParameterDirection.Output);
parameters[6] = CreateParameter(PN_AVG_REM, OracleType.Number, ParameterDirection.Output);
parameters[7] = CreateParameter(PN_TO_SEG, OracleType.Number, ParameterDirection.Output);
parameters[8] = CreateParameter(PN_TA_APL, OracleType.Number, ParameterDirection.Output);
parameters[9] = CreateParameter(PN_TA_D, OracleType.Number, ParameterDirection.Output);
parameters[10] = CreateParameter(PN_DEV_ULT, OracleType.Number, ParameterDirection.Output);
parameters[11] = CreateParameter(PC_TO_F_OBL, OracleType.VarChar, ParameterDirection.Output);
parameters[12] = CreateParameter(PC_TO_F_VCF, OracleType.VarChar, ParameterDirection.Output);
parameters[13] = CreateParameter(PC_TO_F_VSF, OracleType.VarChar, ParameterDirection.Output);
parameters[14] = CreateParameter(PN_RA_MIN_VIG, OracleType.Number, ParameterDirection.Output);
parameters[15] = CreateParameter(PC_PE_MIN_SPP, OracleType.VarChar, ParameterDirection.Output);
parameters[16] = CreateParameter(PC_IND_CON_RES, OracleType.VarChar, ParameterDirection.Output);
parameters[17] = CreateParameter(PC_NUM_RES, OracleType.VarChar, ParameterDirection.Output);
parameters[18] = CreateParameter(PN_VA_NO_RES, OracleType.Number, ParameterDirection.Output);
parameters[19] = CreateParameter(PC_ME, OracleType.VarChar, ParameterDirection.Output);
parameters[20] = CreateParameter(PN_GA_SEP, OracleType.Number, ParameterDirection.Output);
parameters[21] = CreateParameter(PC_TO_TRA, OracleType.VarChar, ParameterDirection.Output);
parameters[22] = CreateParameter(PC_TO_BO, OracleType.VarChar, ParameterDirection.Output);
parameters[23] = CreateParameter(PN_PSEG_NO_D_MIN, OracleType.Number, ParameterDirection.Output);
parameters[24] = CreateParameter(PN_PSEG_NO_D_AVG, OracleType.Number, ParameterDirection.Output);
parameters[25] = CreateParameter(PN_PSEG_AJU_S_MIN, OracleType.Number, ParameterDirection.Output);
parameters[26] = CreateParameter(PN_PSEG_AJU_S_AVG, OracleType.Number, ParameterDirection.Output);
parameters[27] = CreateParameter(PN_PSEG_AJU_D_MIN, OracleType.Number, ParameterDirection.Output);
parameters[28] = CreateParameter(PN_PSEG_AJU_D_AVG, OracleType.Number, ParameterDirection.Output);
parameters[29] = CreateParameter(PN_PAJU_AU_S, OracleType.Number, ParameterDirection.Output);
parameters[30] = CreateParameter(PN_PAJU_AU_D, OracleType.Number, ParameterDirection.Output);
parameters[31] = CreateParameter(PN_PRP, OracleType.Number, ParameterDirection.Output);
parameters[32] = CreateParameter(PN_PJAN, OracleType.Number, ParameterDirection.Output);
parameters[33] = CreateParameter(PN_MON_TO_CAM, OracleType.Number, ParameterDirection.Output);
parameters[34] = CreateParameter(RETURN_VALUE, OracleType.Number, ParameterDirection.ReturnValue);

所有参数名称都是以前设置的字符串。

如果您能确定哪个输出参数是问题所在,您可以尝试这种方法。不要直接从ADO.net调用SP,而是执行一条SQL语句,该语句包含一个调用SP的匿名PL/SQL块,并带有一个修改输出参数(trunc、round或cast)的函数.查询示例:


“BEGIN PROCEDURE_NAME(?,?,TRUNC(?,?,?);END;”

能否添加设置参数的代码段?溢出错误是什么?
堆栈溢出,算术运算溢出?提供有关异常的完整信息,包括堆栈跟踪和内部异常。