CREATE OR REPLACE FUNCTION GET_DAYS(v_end IN DATE ,v_period IN NUMBER) --v_end前几天,如果是负数则是后几天 RETURN T_DAYS AS RS T_DAYS :=T_DAYS(); BEGIN IF v_period >= 0 THEN FOR i IN 0..v_period LOOP RS.EXTEND; RS(RS.COUNT) := OBJ_T_DAYS(v_end-i, to_char(v_end-i ,'fmdd') ,to_char(v_end-i,'fmMM') || '月' || to_char(v_end-i ,'fmdd') || '日'); END LOOP; ELSE FOR i IN v_period..0 LOOP RS.EXTEND; RS(RS.COUNT) := OBJ_T_DAYS(v_end-i, to_char(v_end-i ,'fmdd') ,to_char(v_end-i,'fmMM') || '月' || to_char(v_end-i ,'fmdd') || '日'); END LOOP; END IF; RETURN RS; END GET_DAYS; -------------------------------------------------------- CREATE OR REPLACE TYPE OBJ_T_DAYS as object ( bDate DATE, --2015/1/1 bDay VARCHAR2(10), --1 bDay_Show VARCHAR2(10) --1日 ) ----------------------------------------------------------- CREATE OR REPLACE TYPE T_DAYS is table of OBJ_T_DAYS