System Packages Oracle PLSQL

SQL> select date '1996-01-29' + interval '1' month as col_1
  2  ,      date '1997-01-29' + interval '1' month as col_2
  3  ,      date '1997-08-11' - interval '3' month as col_3
  4  from   dual;
,      date '1997-01-29' + interval '1' month as col_2
                         *
ERROR at line 2:
ORA-01839: date not valid for month specified
SQL>
SQL> select date '1996-01-29' + interval '1' month as col_1
  2  ,      date '1997-01-28' + interval '1' month as col_2
  3  ,      date '1997-08-11' - interval '3' month as col_3
  4  from   dual;
Enter...
29-02-1996 28-02-1997 11-05-1997
1 row selected.
SQL>