And what seems to be the problem in using functions inside DECODE?
Code:
select job, decode(job, 'PRESIDENT', LOWER(job), INITCAP(job))
from scott.emp;
LOWER() and INITCAP() in the above example are functions used inside the DECODE, and INITCAP() is used in the else part of it.