Задать вопрос
box4
@box4

Временная метка при запросе в базу, как реализовать?

Таблица с ntimestamp#. Каким образом сделать, чтобы каждый запрос начинался с того момента когда был запущен предыдущий?
select column1 
from table1
where table1.ntimestamp > ?
  • Вопрос задан
  • 186 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Компьютерная академия «TOP»
    Учебная программа “Разработка программного обеспечения”
    30 месяцев
    Далее
  • Специалист.ру
    Oracle Database 19с: Основы SQL
    1 неделя
    Далее
  • Компьютерная академия «TOP»
    Разработка на Java
    1 год
    Далее
Пригласить эксперта
Ответы на вопрос 2
tsklab
@tsklab
Здесь отвечаю на вопросы.
Хранить время запуска в отдельной таблице.
Ответ написан
Если под "каждый запрос начинался с того момента когда был запущен предыдущий" подразумевается, что необходимы данные на конкретный период времени, т.е. не учитывая изменения в таблице с указанного времени, то можно воспользоваться ретроспективной областью памяти(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;
Затем при работе курсоры будут выводить данные с разницей в доли секунд.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы