Oracle
 sql >> Base de données >  >> RDS >> Oracle

Appel C# fonction stockée oracle

Le ORA-06550 code que vous obtenez signifie que la fonction a été compilée avec des instructions invalides et doit être réécrite. Je ne vois rien de manifestement mal avec le code, vous pourriez donc avoir des problèmes tels que des autorisations ou des noms de table incorrects et vous devriez d'abord vérifier si vous pouvez exécuter la fonction dans un éditeur PL/SQL. Ensuite, une fois que vous avez démarré, essayez...

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

Cela devrait pouvoir exécuter la fonction comme une procédure stockée tout en attendant une valeur de retour nommée kiekis de type number être disponible pour travailler.