Мониторинг запросов изменений в поле

#sql #database #oracle

Вопрос:

Мне нужно запрограммировать запрос, в котором я смогу увидеть изменения, внесенные в определенные поля за определенный период времени. Пример: Из таблицы CAM_CONCEN приведите те записи, в которых номер УЧЕТНОЙ записи подвергается изменению в поле «КОНТАКТ» за 6 месяцев до даты. Я был бы признателен, если бы вы могли направить меня.

Комментарии:

1. Как вы отслеживаете изменения в столбце? Используете ли вы встроенный аудит? Триггер, записывающий данные в таблицу истории? Запись триггера в общую таблицу аудита? Что-то еще?

Ответ №1:

Вы можете использовать LAG() для просмотра предыдущей строки определенного подмножества строк (в данном случае той же учетной записи).

Например:

 select * from (  select c.*,  lag(contact) over(partition by account_number  order by change_date) as prev_contact  from cam_concen c ) x where contact lt;gt; prev_contact  

Комментарии:

1. спасибо, все прошло успешно.