ORA-06550
Otrzymany kod oznacza, że funkcja została skompilowana z nieprawidłowymi instrukcjami i musi zostać napisana ponownie. Nie widzę niczego wyraźnie złego w kodzie, więc możesz mieć problemy, takie jak uprawnienia lub nieprawidłowe nazwy tabel, i powinieneś przede wszystkim sprawdzić, czy możesz uruchomić funkcję w edytorze PL/SQL. Następnie, gdy już to zrobisz, spróbuj...
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();
Powinno to umożliwić uruchomienie funkcji jak procedury składowanej podczas oczekiwania na wartość zwracaną o nazwie kiekis
typu number
być dostępnym do pracy.