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

C# opkald oracle lagret funktion

ORA-06550 kode du får betyder, at funktionen blev kompileret med ugyldige udsagn og skal omskrives. Jeg kan ikke se noget åbenlyst galt med koden, så du kan have problemer som tilladelser eller forkerte tabelnavne og bør først og fremmest tjekke, om du kan køre funktionen i en PL/SQL-editor. Så, når du har fået det til at køre, prøv...

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();

Dette skulle være i stand til at køre funktionen som en lagret procedure, mens man forventer en returværdi ved navn kiekis af typen number at være tilgængelig for arbejde.



  1. Importer data fra Excel-regneark eller CVS til MySQL

  2. T-SQL trim   (og andre ikke-alfanumeriske tegn)

  3. SQL Server:Filteroutput af sp_who2

  4. Returnerer COUNT(*) altid et resultat?