I ran two simple sql statements
select length(to_char(sysdate, 'fmMonth')) from dual;
select length(to_char(sysdate, 'Month')) from dual;
The length of the first statement was 4 (It's June) and the length of the second statement was 9. Why does it pad 5 extra characters unless you specifically ask it not to?
The only reason I could come up with was that the month with the most amount of characters is september (nls_date_language set 'English') which has 9 character.
Second question is if you changed your nls_date_language variable would you also change the amount of padding?