-- 고수는 아니지만..
WITH T (ST_DT , ED_DT ) AS (
SELECT '20180701','20181130' FROM DUAL
)
SELECT TO_CHAR(ADD_MONTHS(TO_DATE(ST_DT,'YYYYMMDD'),LEVEL-1) ,'YYYYMM' ) YYYYMM
FROM T
CONNECT BY LEVEL <= ROUND(MONTHS_BETWEEN (ED_DT,ST_DT),0)
SELECT TO_CHAR(ADD_MONTHS(sdt, LEVEL - 1), 'yyyymm') ym
FROM (SELECT TO_DATE(SUBSTR('20180701', 1, 6), 'yyyymm') sdt
, TO_DATE(SUBSTR('20181130', 1, 6), 'yyyymm') edt
FROM dual)
CONNECT BY LEVEL <= MONTHS_BETWEEN(edt, sdt) + 1
;