Oracle数据访问输出参数混淆



我正在调用一个包含15个输入参数和4个输出参数的Oracle存储过程。输出参数设置如下:

OracleParameter p_errn = cmd.Parameters.Add("pErrCode", OracleDbType.Decimal, 10);
p_errn.Direction = ParameterDirection.Output;
OracleParameter p_errm = cmd.Parameters.Add("pErrMsg", OracleDbType.Varchar2, 1000);
p_errm.Direction = ParameterDirection.Output;
OracleParameter pStatus = cmd.Parameters.Add("pStatus", OracleDbType.Decimal, 10); 
pStatus.Direction = ParameterDirection.Output;
OracleParameter pID = cmd.Parameters.Add("pID", OracleDbType.Varchar2, 1000);
pID.Direction = ParameterDirection.Output;

过程i成功执行,但输出参数值混淆。应该在pId中的值在pStatus中,应该在pStatu中的值是在pErrMsg中,依此类推

我还试图通过从参数集合获取值:

cmd.Parameters["pErrMsg"].Value.ToString()

但情况是一样的。

我检查了存储过程,一切似乎都很好。所有输出参数设置正确。

有人有类似的问题或暗示是什么导致了这种行为?

所有参数的添加顺序必须与在ORACLE上的存储过程中定义的顺序相同

其中一个输入参数被无序添加,这导致了混乱。

最新更新