我遇到了严重问题,试图从SP获取数据。我试图这样做:如何从.NET中的存储过程返回oracle输出参数
OracleCommand ora_cmd = new OracleCommand("a6r1.PR_ABC_P_ALTA_TARJETA_PAYWARE", ora_conn);
ora_cmd.BindByName = true;
ora_cmd.CommandType = CommandType.StoredProcedure;
int success= new int();
ora_cmd.Parameters.Add("Lc_Param_Issuer", OracleDbType.Varchar2, issuer, ParameterDirection.Input);
ora_cmd.Parameters.Add("Ln_Param_Valid_Product", OracleDbType.Varchar2, DropDownListProducto.SelectedValue.ToString(), ParameterDirection.Input);
ora_cmd.Parameters.Add("Ln_Param_Total", OracleDbType.Int32, parsed, ParameterDirection.Input);
ora_cmd.Parameters.Add("Lc_Param_User", OracleDbType.Varchar2, user, ParameterDirection.Input);
ora_cmd.Parameters.Add("Lc_Encrypted_Password", OracleDbType.Varchar2, pass, ParameterDirection.Input);
ora_cmd.Parameters.Add("Lc_Exito", OracleDbType.Int32, success, ParameterDirection.Output);
ora_cmd.Parameters.Add("Lc_Error", OracleDbType.Varchar2, errorMessage, ParameterDirection.Output);
但它没有返回任何东西到变量成功或errorMessage。我究竟做错了什么?有没有更好的办法?它直接在Oracle上执行时可以正常工作。
是的,你是绝对正确的。我没有料到oracle参数对sql的特殊性。比你非常。 –
'if(ora_cmd.Parameters [“Lc_Exito”])。value == 0)'中有一个额外的括号。你的意思是if(ora_cmd.Parameters [“Lc_Exito”]。value == 0)'? – stephen