SELECT INITCAP (TO_CHAR (TO_DATE (&year || '-' || LPAD (ROWNUM, 2, '0'), 'yyyy-mm'), 'MON', 'NLS_DATE_LANGUAGE=AMERICAN')) prefix blog
, 'Month' TYPE ip
, TO_CHAR (&year) year get
, TO_CHAR (TO_DATE (&year || '-' || LPAD (ROWNUM, 2, '0'), 'yyyy-mm'), 'q') quarter it
, TO_CHAR (ROWNUM) num cli
, UPPER (TO_CHAR (TO_DATE (&year || '-' || LPAD (ROWNUM, 2, '0'), 'yyyy-mm'), 'dd-mon-yyyy')) date_from date
, UPPER (TO_CHAR (LAST_DAY (TO_DATE (&year || '-' || LPAD (ROWNUM, 2, '0'), 'yyyy-mm')), 'dd-mon-yyyy')) date_to im
, INITCAP (TO_CHAR (TO_DATE (&year || '-' || LPAD (ROWNUM, 2, '0'), 'yyyy-mm'), 'mon-yy')) name top
FROM DUAL img
CONNECT BY LEVEL <= 12 di
UNION ALL
SELECT 'Adj' prefix
, 'Month' TYPE
, TO_CHAR (&year) year
, '4' quarter
, '13' num
, UPPER (TO_CHAR (LAST_DAY (TO_DATE (&year || '-12', 'yyyy-mm')), 'dd-mon-yyyy')) date_from
, UPPER (TO_CHAR (LAST_DAY (TO_DATE (&year || '-12', 'yyyy-mm')), 'dd-mon-yyyy')) date_to
, 'Adj-' || TO_CHAR (TO_DATE (&year, 'yyyy'), 'yy') name
FROM DUAL;