El ORA-06550
el código que obtiene significa que la función se compiló con declaraciones no válidas y debe volver a escribirse. No veo nada obviamente incorrecto en el código, por lo que es posible que tenga problemas como permisos o nombres de tabla incorrectos y, ante todo, debe verificar si puede ejecutar la función en un editor PL/SQL. Luego, después de ponerlo en marcha, intente...
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();
Esto debería poder ejecutar la función como un procedimiento almacenado mientras espera un valor de retorno llamado kiekis
de tipo number
estar disponible para trabajar.