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.