ORA-06550:调用的参数的数量或类型错误

时间:2018-03-16 19:55:23

标签: c# oracle

我试图在C#中调用oracle函数但是无法弄清楚为什么我一直在输入类型或参数错误。任何帮助,将不胜感激。我已经验证了参考数据类型,并且已经习惯了我的理解。

FUNCTION VALIDATE_DIFF_PCT_HIER(
         O_error_message          IN OUT  RTK_ERRORS.RTK_TEXT%TYPE,
         I_record_exists          IN      BOOLEAN,
         I_each_diff_pct_x_100    IN      TVC_PMT_DIFF_PCT_HIER.EACH_DIFF_PCT%TYPE,
         I_case_diff_pct_x_100    IN      TVC_PMT_DIFF_PCT_HIER.CASE_DIFF_PCT%TYPE,
         I_pallet_diff_pct_x_100  IN      TVC_PMT_DIFF_PCT_HIER.PALLET_DIFF_PCT%TYPE,
         I_dept                   IN      DEPS.DEPT%TYPE,
         I_class                  IN      CLASS.CLASS%TYPE,
         I_subclass               IN      SUBCLASS.SUBCLASS%TYPE)

C#代码。

cmd.Parameters.Add("O_error_message", OracleDbType.Varchar2, ParameterDirection.InputOutput).Value = string.Empty;
cmd.Parameters.Add("I_record_exists", OracleDbType.Char, ParameterDirection.Input).Value = "1";
cmd.Parameters.Add("I_each_diff_pct_x_100", OracleDbType.Double, ParameterDirection.Input).Value = 0.04;
cmd.Parameters.Add("I_case_diff_pct_x_100", OracleDbType.Double, ParameterDirection.Input).Value = -0.1;
cmd.Parameters.Add("I_pallet_diff_pct_x_100", OracleDbType.Double, ParameterDirection.Input).Value = -0.1;
cmd.Parameters.Add("I_dept", OracleDbType.Int32, ParameterDirection.Input).Value = row.DeptId;
cmd.Parameters.Add("I_class", OracleDbType.Int32, ParameterDirection.Input).Value = row.ClassId;
cmd.Parameters.Add("I_subclass", OracleDbType.Int32, ParameterDirection.Input).Value = row.SubClassId;
cmd.Parameters.Add("Return_Value", OracleDbType.Char, ParameterDirection.ReturnValue);

conn.Open();
cmd.ExecuteNonQuery();

0 个答案:

没有答案