Per il momento ho "risolto" in questo modo
SELECT
TRUNC(MONTHS_BETWEEN(END_DATE,START_DATE)/12) AS ANNI ,
TRUNC(MOD( MONTHS_BETWEEN(END_DATE,START_DATE) ,12)) AS mesi,
trunc(end_date - add_months( start_date, months_between(end_date,start_date))) as giorni,
TRUNC(24*MOD(END_DATE - START_DATE,1)) AS ORE,
TRUNC( MOD(MOD(END_DATE - START_DATE,1)*24,1)*60 ) AS MINUTI ,
mod(mod(mod(end_date - start_date,1)*24,1)*60,1)*60 as secondi
FROM ( SELECT TO_DATE('15/11/2015 11:19:58','dd/mm/yyyy hh24:mi:ss') END_DATE ,
TO_DATE('23/12/2014 10:18:57','dd/mm/yyyy hh24:mi:ss') START_DATE
from dual );
ma vorrei fare una cosa più pulita