Oracle does provide a sql-method called
next_day(p1, p2) to return the date of the first weekday named by
p2 that is later than the date
p1. A common issue with
next_day() is, however, that the weekday named in
p2 constitutes a non-abstract, here language-dependent (but on tests non-case-sensitive), value. That is, calling
p2='MONTAg' in a session with
nls_language='FRENCH' will throw exception ORA-01846: ce n’est pas un jour de semaine valide or 01846. 00000 – “not a valid day of the week”.
You may now come up with an approach to comprise any environment setting of
nls_language and any necessary value of
p2 in a large switch block but… to no avail. Whoever is going to determine what range of environment setting of
nls_language will be in effect over the lifetime of an application. In particular, since
nls_language depents on the client side settings of the database,
nls_language may vary widely according to the locale on connect.