My colleague needed to use a function in the database in a query, but found that the function was not defined/reachable in his schema. So the solution is to ask for the function to be granted to you, or to create the function in your schema, or…
…use the new WITH enhancement available from Oracle 12c.
Here is a very simple example, that squares a number and returns it. The function is used in the query. How nice :-p
with function s(x in integer) return integer is begin return x*x; end; q as (select 1 n from dual union all select 2 from dual) select q.n,s(q.n) from q /