Вы очень близки к решению, можете сделать, например,
SQL> var mon number;
SQL> var year number;
SQL> begin :mon :=&mon; :year := &year; end; -- mon --> 4 and year --> 2020
2 /
PL/SQL procedure successfully completed
mon
---------
4
year
---------
2020
SQL>
SQL> WITH d AS
2 (
3 SELECT TRUNC( to_date(lpad(:mon,2,'0')||'.'||:year,'mm.yyyy'), 'MM' ) - 1 AS dt
4 FROM dual
5 )
6 SELECT dt + LEVEL AS date_month
7 FROM d
8 CONNECT BY LEVEL <= ADD_MONTHS (dt, 1) - dt
9 /
, чтобы перечислить все даты апреля 2020 . И замените эти значения параметров на нужные комбинации месяца и года.