Если под "каждый запрос начинался с того момента когда был запущен предыдущий" подразумевается, что необходимы данные на конкретный период времени, т.е. не учитывая изменения в таблице с указанного времени, то можно воспользоваться ретроспективной областью памяти(
https://docs.oracle.com/cd/B14117_01/appdev.101/b1... Пример:
SELECT * FROM employee AS OF TIMESTAMP
TO_TIMESTAMP('2003-04-04 09:30:00', 'YYYY-MM-DD HH:MI:SS')
WHERE name = 'JOHN';
Т.е. запрос к таблице -SELECT * FROM employee
передаем метку scn - AS OF TIMESTAMP TO_TIMESTAMP('2003-04-04 09:30:00', 'YYYY-MM-DD HH:MI:SS')
условие- WHERE name = 'JOHN';
Перед выполнением первого запроса сохраняем метку времени и вставляем таким образом во все запросы.
Если разница в долях секундах приемлема, то можно создать курсоры подряд ко всем интересующим таблицам
т.е.
declare
х1 refcursor;
х2 refcursor;
...
begin
open х1 for select * from t1;
open х2 for select * from t2;
....
end;
Затем при работе курсоры будут выводить данные с разницей в доли секунд.