Использовать DBMS_SCHEDULER.EVALUATE_CALENDAR_STRING
Пример:
DECLARE
next_run_date TIMESTAMP;
BEGIN
FOR i IN 1..10 LOOP
DBMS_SCHEDULER.EVALUATE_CALENDAR_STRING('FREQ=HOURLY;BYHOUR=06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23;BYMINUTE=0;BYSECOND=0;BYDAY=Mon', NULL, next_run_date, next_run_date);
DBMS_OUTPUT.PUT_LINE ( next_run_date );
END LOOP;
END;
2018-04-30 06:00:00.000
2018-04-30 07:00:00.000
2018-04-30 08:00:00.000
2018-04-30 09:00:00.000
2018-04-30 10:00:00.000
2018-04-30 11:00:00.000
2018-04-30 12:00:00.000
2018-04-30 13:00:00.000
2018-04-30 14:00:00.000
2018-04-30 15:00:00.000
В случае, если вы запрашиваете DBMS_JOB , это сложнее, потому что в отличие от SCHEDULER JOBS
"следующий раз" оценивается после текущего задания.