-- Gregorian Calendar: Get dates in mm/dd/yyyy format and day of the week for -- any year SET SERVEROUTPUT ON; DECLARE CURSOR c_yr(p_yyyy IN NUMBER) IS WITH q_day AS (SELECT TRUNC(TO_DATE(p_yyyy,'yyyy'),'yyyy') first_day FROM DUAL ), q_year AS (SELECT first_day, LAST_DAY(ADD_MONTHS(first_day,11)) last_day, LAST_DAY(ADD_MONTHS(first_day,11)) - first_day days_in_year FROM q_day ) SELECT level day_idx ,first_day+level-1 AS calendar_day FROM q_year CONNECT BY level <= days_in_year+1; i_yyyy NUMBER := &yyyy; BEGIN FOR day_rec IN c_yr(i_yyyy) LOOP DBMS_OUTPUT.PUT_LINE('"'|| LAPD(day_rec.day_idx,3,'0')||'","'|| TO_CHAR(day_rec.calendar_day,'mm/dd/yyyy')||'","'|| TO_CHAR(day_rec.calendar_day,'DY')||'"'); END LOOP; END; /
23839