Der ORA-06550
Code, den Sie erhalten, bedeutet, dass die Funktion mit ungültigen Anweisungen kompiliert wurde und neu geschrieben werden muss. Ich sehe keinen offensichtlichen Fehler im Code, daher haben Sie möglicherweise Probleme wie Berechtigungen oder falsche Tabellennamen und sollten prüfen, ob Sie die Funktion in erster Linie in einem PL/SQL-Editor ausführen können. Dann, nachdem Sie das zum Laufen gebracht haben, versuchen Sie...
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();
Dies sollte in der Lage sein, die Funktion wie eine gespeicherte Prozedur auszuführen, während ein Rückgabewert namens kiekis
erwartet wird vom Typ number
für die Arbeit verfügbar sein.