You can use the next_day function:
select next_day(sysdate, 'MONDAY') from dual;
In case the national settings are not English we can have Oracle generate the localized translation of "Monday" and use it like this:
SQL> set serveroutput on
SQL> alter session set nls_date_format="YYYY-MM-DD";
Session altered.
SQL> alter session set nls_date_language=italian;
Session altered.
SQL> declare
2 v_monday constant varchar2(100) := to_char(to_date('2013-09-30', 'yyyy-mm-dd'), 'day');
3 begin
4 dbms_output.put_line('v_monday = ' || v_monday);
5 dbms_output.put_line('next monday will be ' || next_day(sysdate, v_monday));
6 end;
7 /
v_monday = lunedi
next monday will be 2013-09-30
PL/SQL procedure successfully completed.
SQL> alter session set nls_date_language=spanish;
Session altered.
SQL> declare
2 v_monday constant varchar2(100) := to_char(to_date('2013-09-30', 'yyyy-mm-dd'), 'day');
3 begin
4 dbms_output.put_line('v_monday = ' || v_monday);
5 dbms_output.put_line('next monday will be ' || next_day(sysdate, v_monday));
6 end;
7 /
v_monday = lunes
next monday will be 2013-09-30
PL/SQL procedure successfully completed.