Il ORA-06550
il codice che ottieni significa che la funzione è stata compilata con istruzioni non valide e deve essere riscritta. Non vedo nulla di ovviamente sbagliato nel codice, quindi potresti avere problemi come autorizzazioni o nomi di tabelle errati e dovresti controllare prima di tutto se puoi eseguire la funzione in un editor PL/SQL. Quindi, dopo averlo avviato, prova...
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();
Questo dovrebbe essere in grado di eseguire la funzione come una procedura memorizzata mentre si aspetta un valore restituito chiamato kiekis
di tipo number
essere disponibile al lavoro.