Oracle
 sql >> Database >  >> RDS >> Oracle

C# chiama la funzione memorizzata Oracle

Il ORA-06550 il codice che ottieni significa che la funzione è stata compilata con istruzioni non valide e deve essere riscritta. Non vedo nulla di ovviamente sbagliato nel codice, quindi potresti avere problemi come autorizzazioni o nomi di tabelle errati e dovresti controllare prima di tutto se puoi eseguire la funzione in un editor PL/SQL. Quindi, dopo averlo avviato, prova...

var cmd = new OracleCommand();

cmd.Connection = conn;
cmd.CommandText = "ar_knyga_egzistuoja";
cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.Add("id", id);
cmd.Parameters.Add("kiekis", OracleType.Number);
cmd.Parmeters["kiekis"].Direction = ParameterDirection.ReturnValue;

cmd.Connection.Open();
cmd.ExecuteNonQuery();

var kiekis = Convert.ToString(cmd.Parameters["kiekis"].Value);

MessageBox.Show(kiekis);
cmd.Connection.Close();

Questo dovrebbe essere in grado di eseguire la funzione come una procedura memorizzata mentre si aspetta un valore restituito chiamato kiekis di tipo number essere disponibile al lavoro.