This only works if you have one row/month:
insert into t values ('TEST', date'2015-01-31');
insert into t values ('TEST2', date'2016-01-31');
select order_dt,mno,cls,prev_order_dt,
prev_object_name
from t
match_recognize(
order by order_dt
measures
match_number() as mno,
classifier() as cls,
prev(order_dt,12) as prev_order_dt,
prev(object_name,12) as prev_object_name
all rows per match
pattern( down+ )
define
down as order_dt > prev(order_dt) or
prev(order_dt) is null );
ORDER_DT MNO CLS PREV_ORDER_DT PREV_OBJECT_NAME
01-JAN-2015 00:00:00 1 DOWN
31-JAN-2015 00:00:00 1 DOWN
01-FEB-2015 00:00:00 1 DOWN
01-MAR-2015 00:00:00 1 DOWN
01-APR-2015 00:00:00 1 DOWN
01-MAY-2015 00:00:00 1 DOWN
01-JUN-2015 00:00:00 1 DOWN
01-JUL-2015 00:00:00 1 DOWN
01-AUG-2015 00:00:00 1 DOWN
01-SEP-2015 00:00:00 1 DOWN
01-OCT-2015 00:00:00 1 DOWN
01-NOV-2015 00:00:00 1 DOWN
01-DEC-2015 00:00:00 1 DOWN 01-JAN-2015 00:00:00 20-ICOL$
01-JAN-2016 00:00:00 1 DOWN 31-JAN-2015 00:00:00 TEST
31-JAN-2016 00:00:00 1 DOWN 01-FEB-2015 00:00:00 4-TAB$
01-FEB-2016 00:00:00 1 DOWN 01-MAR-2015 00:00:00 47-I_USER2
01-MAR-2016 00:00:00 1 DOWN 01-APR-2015 00:00:00 58-I_CCOL2
01-APR-2016 00:00:00 1 DOWN 01-MAY-2015 00:00:00 36-I_OBJ1
01-MAY-2016 00:00:00 1 DOWN 01-JUN-2015 00:00:00 5-CLU$
01-JUN-2016 00:00:00 1 DOWN 01-JUL-2015 00:00:00 10-C_USER#
01-JUL-2016 00:00:00 1 DOWN 01-AUG-2015 00:00:00 23-PROXY_DATA$
01-AUG-2016 00:00:00 1 DOWN 01-SEP-2015 00:00:00 55-I_CDEF3
01-SEP-2016 00:00:00 1 DOWN 01-OCT-2015 00:00:00 38-I_OBJ3
01-OCT-2016 00:00:00 1 DOWN 01-NOV-2015 00:00:00 19-IND$
01-NOV-2016 00:00:00 1 DOWN 01-DEC-2015 00:00:00 59-BOOTSTRAP$
01-DEC-2016 00:00:00 1 DOWN 01-JAN-2016 00:00:00 50-I_COL3