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