Mam poważne problemy z odzyskaniem danych z SP. Próbowałem zrobić to w ten sposób:Jak zwracać parametry wyjściowe oracle z procedury składowanej w .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);
Ale to nie jest zwracanie niczego do zmiennych sukcesu lub komunikatu błędu. Co ja robię źle? Czy istnieje lepszy sposób? Działa dobrze, gdy jest wykonywany bezpośrednio na Oracle.
Tak, masz absolutną rację. Nie oczekiwałem, że parametry oracle będą tak specyficzne w porównaniu do sql. Niż bardzo. –
'if (ora_cmd.Parameters [" Lc_Exito "]). Value == 0)' ma dodatkowy nawias. Czy masz na myśli 'if (ora_cmd.Parameters [" Lc_Exito "]. Value == 0)'? – stephen