Para poder criar uma função seu usuário precisa do privilégio CREATE PROCEDURE concedido a ele pelo DBA:
grant create procedure to myschema;
Se você tiver o privilégio, poderá criar uma função como esta
create function square(n in number) return number
is
return n*n;
end;
E você pode chamá-lo do SQL assim:
select num, square(num)
from mytable;
Observação:no Oracle geralmente é preferível criar funções em pacotes , caso em que o SQL de chamada seria assim:
select num, mypackage.square(num)
from mytable;