The Oracle/PLSQL MONTHS_BETWEEN function returns the number of months between two dates.
MONTHS_BETWEEN(d1, d2)
Example 1:
SELECT MONTHS_BETWEEN(TO_DATE('31/10/2007','DD/MM/YYYY'),TO_DATE('01/06/2007','DD/MM/YYYY')) FROM DUAL;
returns:
4,96774193548387