我正在使用 Visual Studio 2010、Oracle 数据库 10g 和库 System.Data.OracleClient。我的问题是当我想在 batabase 中执行程序时,我得到一个溢出错误。我正在阅读并说我需要 ROUND 或 TRUNCT 数字,因为它太大了。但我无权访问数据库来更改程序。我得到的值来自带有 Out Direction 的 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);
所有参数名称都是先前设置的字符串。