-- "explode" a specific year/month into one row for each day select * from table(date_util_pkg.explode_month(2011, 2)) -- generate a table of dates based on a "calendar string" -- for calendar string syntax, see http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_sched.htm#i1009923 -- a start and stop date can be specified, it not specified it defaults to a year from now select t.column_value from table(date_util_pkg.get_date_tab('FREQ=WEEKLY; BYDAY=MON,WED,FRI', trunc(sysdate), trunc(sysdate+90))) t