Per poter creare una funzione il tuo utente ha bisogno del privilegio CREATE PROCEDURE concessogli dal DBA:
grant create procedure to myschema;
Se hai il privilegio, puoi creare una funzione come questa
create function square(n in number) return number
is
return n*n;
end;
E puoi chiamarlo da SQL in questo modo:
select num, square(num)
from mytable;
Nota:in Oracle di solito si preferisce creare funzioni in pacchetti , nel qual caso l'SQL chiamante sarebbe come:
select num, mypackage.square(num)
from mytable;