SPからデータを取得しようとして重大な問題が発生しています。私はこのようにしようとしていました:.NETのストアドプロシージャから出力パラメータを返す方法
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);
しかし、変数sucessまたはerrorMessageには何も返されません。私は間違って何をしていますか?より良い方法がありますか? Oracle上で直接実行するとうまく動作します。
はい、あなたは絶対に正しいです。私はoracleのパラメータがSQLと比べて非常に特殊であるとは思わなかった。あなたよりもずっと。 –
'if(ora_cmd.Parameters [" Lc_Exito "])。value == 0)'に余分な括弧があります。 'if(ora_cmd.Parameters [" Lc_Exito "]。value == 0)'を意味しますか? – stephen