SELECT TO_CHAR(TO_DATE('201804'||LPAD(LEVEL,'2',0), 'YYYYMMDD'),'YYYYMMDD'), LEVEL
    FROM (SELECT TO_DATE('20140601', 'YYYYMMDD') MAKE_DATES FROM DUAL)
CONNECT BY LEVEL <= TO_CHAR(LAST_DAY(sysdate),'DD')


결과값

20180401 1
20180402 2
20180403 3
20180404 4
20180405 5
20180406 6
20180407 7
20180408 8
20180409 9
20180410 10
20180411 11
20180412 12
20180413 13
20180414 14
20180415 15
20180416 16
20180417 17
20180418 18
20180419 19
20180420 20
20180421 21
20180422 22
20180423 23
20180424 24
20180425 25
20180426 26
20180427 27
20180428 28
20180429 29
20180430 30


마지막일 구하기

 SELECT TO_CHAR(LAST_DAY(sysdate),'DD') FROM dual;