What is an easy query to fix up historical columns valid_from and valid_to?
There a lot of differences between the two DBMS. 


Oracle supports window fundtions, the MERGE statement and several other features that MySQL doesn't. 
They have different datetime functions (but you are lucky here, - interval '1' day  will work in both).
Different UPDATE syntax - apart from very simple, one table update statements. 

MySQL supports a JOIN in the UPDATE statement, Oracle doesn't.
Oracle supports updatable "views" (derived tables), MySQL doesn't.
MySQL doesn't allow the updated table to be defined (again) in a subquery in the update WHERE.



Therefore, it will be very difficult - if possible at all - to write an update statement that will work in both dbms for youe complex case.

For Oracle, you can use either a MERGE statement, or the LEAD() function (altough I didn't manage to make it work in your case) or a self-join, or an inline subquery in an updatable "view":

SQLfiddle-1

update
( select id, valid_to, 
         ( select min(ee.valid_from)
           from employees ee
           where ee.object_id = e.object_id
             and ee.valid_from &gt; e.valid_from
         ) as next_valid
  from employees e
) 
set valid_to = next_valid - interval '1' day ;


or with the more simple:

update employees e
set valid_to = 
   ( select min(valid_from)
     from employees u
     where u.object_id = e.object_id
       and u.valid_from &gt; e.valid_from
   ) - interval '1' day ;


None of the above will work in mysql.



For MySQL it will have to be something more convoluted:

update
    employees e
  join
    ( select id, 
         ( select min(ee.valid_from)
           from employees ee
           where ee.object_id = ei.object_id
             and ee.valid_from &gt; ei.valid_from
         ) as next_valid
      from employees ei
    ) upd
    on e.id = upd.id
set e.valid_to = upd.next_valid - interval 1 day ;


Another possibility for MySQL is using a variable (will update with an example later).



I think your only option, if you truly want something that works in both environments, is to break the problem into two actions:


1, insert the values into a temporary table and 
2, do the actual update using that temp table.