Oracle Query для получения ранее обновленной записи - PullRequest
0 голосов
/ 24 июня 2019

Запрос Oracle для получения измененных деталей с тем, что изменилось ранее, скажем, Значение X было обновлено СО значением Y, и теперь мне нужна помощь для формирования запроса для извлечения предыдущей записи, которая является X

1 Ответ

0 голосов
/ 24 июня 2019

Если вам НУЖНО отслеживать определенные состояния записей на основе данных, содержащихся в полях указанных записей в вашей базе данных, триггеры позволят вам переместить записи до того, как они ОБНОВЛЯЮТСЯ или УДАЛЕНЫ в соответствующую историю.Таблица или иным образом называется таблицей аудита.Идея состоит в том, что вы затем запросите свою таблицу аудита на основе даты / времени, когда вы подозреваете, что запись была обновлена, чтобы получить значение поля до того, как это поле будет обновлено.

Пример UPDATE /УДАЛИТЬ Триггер

TRIGGER user_schema.ACCOUNTS_HIST_TRIG
  AFTER
   DELETE OR UPDATE of account_bus_id, account_name, account_phone, other_field_you_care_about
  ON user_schema.accounts
 REFERENCING NEW AS NEW OLD AS OLD
  FOR EACH ROW

 DECLARE

   numUser number; /* Used to store user_id */   

 BEGIN

  /* Perhaps you have code to pull in the user that performed the update */
  numuser := user_schema.get_user_updated();

  INSERT INTO user_schema.accounts_hist(
    account_id,
    account_type,
    account_phone,
    account_phone_type,
    updated_by
  )
  VALUES(:OLD.account_id,
    :OLD.account_type,
    :OLD.account_phone,
    :OLD.account_phone_type,
    numuser);

exception
   WHEN others THEN
     RAISE;
 END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...