Одним из вариантов этого может быть триггер базы данных - что-то очень похожее на аудит изменений, которые вы вносите в таблицу. Например (на основе схемы Скотта):
SQL> alter session set nls_date_format = 'dd.mm.yyyy hh24:mi:ss';
Session altered.
SQL> create table dept_audit as select * from dept where 1 = 2;
Table created.
SQL> alter table dept_audit add datum date;
Table altered.
SQL> create or replace trigger trg_bu_dept
2 after update on dept
3 for each row
4 begin
5 insert into dept_audit (deptno, dname, loc, datum)
6 values (:new.deptno, :new.dname, :new.loc, sysdate);
7 end;
8 /
Trigger created.
SQL> update dept set loc = 'Dallas' where deptno = 20;
1 row updated.
SQL> select * from dept_audit;
DEPTNO DNAME LOC DATUM
---------- -------------- ------------- -------------------
20 RESEARCH Dallas 05.11.2018 08:19:06
SQL>
Итак, вам нужно только UPDATE
строк; триггер "скопирует" их в другую таблицу. Это не строго «один запрос», который вы упомянули в вопросе, но, надеюсь, он послужит цели.