Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Узнать дату изменения записи  [new]
JohnDan
Member

Откуда:
Сообщений: 219
Добрый день.
Подскажите, пожалуйста. Существует ли возможность получить информацию об времени изменения определенных строк в таблицах в каких-нибудь служебных таблицах ORACLE или как-то иначе.
Т.е. есть таблица, есть записи, время изменения никак не фиксируется, отсутствует соответствующее поле для фиксации данного результата.
Может кто подскажет, в какую сторону двигаться.
Archive - логи не предлагать))
10 июн 11, 10:03    [10793732]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Двигаться в сторону тех возможностей, которые ты исключил :))
10 июн 11, 10:07    [10793756]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
некуцй
Guest
JohnDan,

rowdependencies + orarowscn
10 июн 11, 10:10    [10793779]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
JohnDan
Member

Откуда:
Сообщений: 219
Если более подробно, стоит задача выгребать данные, которые были добавлены/изменены/удалены из определенных таблиц, не имеющих дату фиксации вышеуказанных событий.
Вешать триггеры и писать куда-то сбоку эту информацию не вариант.
10 июн 11, 10:11    [10793784]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
JohnDan
Member

Откуда:
Сообщений: 219
tru55
Двигаться в сторону тех возможностей, которые ты исключил :))

Поэтому сразу и исключил, т.к. ищу альтернативы))

некуцй
Спасибо, посмотрю!

Может есть еще варианты.
10 июн 11, 10:13    [10793800]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Если Ora 11, можно почитать про Flashback Data Archive
10 июн 11, 10:18    [10793843]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18399
JohnDan
Вешать триггеры и писать куда-то сбоку эту информацию не вариант.

Может попробовать помутить с mv log?
10 июн 11, 12:39    [10795271]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
Dako aka 3L33T
Member

Откуда:
Сообщений: 98
Создай 4 поля creater, created, changer, changed
В триггере before insert or update
if inserting then
creater=user
created=sysdate
changer=user
changed=sysdate
else
changer=user
changed=sysdate
end if;

и все
10 июн 11, 12:45    [10795340]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
JohnDan
Member

Откуда:
Сообщений: 219
tru55
Не везде 11-я пока, баз множество, решение должно быть единым, спасибо за наводку))

andrey_anonymous
Спасибо, почитаю

Dako aka 3L33T
Триггеры, не вариант, есть опасение что на боевой базе, к которой осуществляются короткие коннекты с Web-а, при активно работающих несколько тысяч пользователей могут быть проблемы.

Может еще варианты?))
14 июн 11, 10:38    [10808506]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
N.Ivankin
Member

Откуда: Извините, но всё-таки СПб
Сообщений: 969
JohnDan,
как вариант заюзать FGAC
14 июн 11, 10:48    [10808554]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
semenar
Member

Откуда: Днепропетровск
Сообщений: 3308
Блог
Dako aka 3L33T
Создай 4 поля creater, created, changer, changed

В триггере 
before insert or update
if inserting then creater=user created=sysdate changer=user changed=sysdate else
changer=user
changed=sysdate
end if;
Выделенное можно выбросить, заменив на alter table ... modify... default...
14 июн 11, 10:59    [10808618]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
FireX
Member

Откуда:
Сообщений: 44
JohnDan
Добрый день.
Подскажите, пожалуйста. Существует ли возможность получить информацию об времени изменения определенных строк в таблицах в каких-нибудь служебных таблицах ORACLE или как-то иначе.
Т.е. есть таблица, есть записи, время изменения никак не фиксируется, отсутствует соответствующее поле для фиксации данного результата.
Может кто подскажет, в какую сторону двигаться.
Archive - логи не предлагать))


Решили задачу или нет? Интересуюсь потому как у меня возникла такая же.
23 мар 12, 18:45    [12304147]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
AMonkeys
Guest
JohnDan,
SCN_TO_TIMESTAMP(ORA_ROWSCN)
Я не могу рекомендовать что это всегда подойдет, но это лучше чем ничего.
23 мар 12, 20:14    [12304515]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
sixers
Member

Откуда:
Сообщений: 146
AMonkeys
JohnDan,
SCN_TO_TIMESTAMP(ORA_ROWSCN)
Я не могу рекомендовать что это всегда подойдет, но это лучше чем ничего.


При изменении 1 строки, ORA_ROWSCN меняется для всех строк из блока...
23 мар 12, 20:31    [12304566]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
AMonkeys
Guest
sixers,
enable ROWDEPENDENCIES решает это
23 мар 12, 20:40    [12304582]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
sixers
Member

Откуда:
Сообщений: 146
AMonkeys,

Enable ?

CTAS в новую таблицу с ROWDEPENDENCIES;

или я не прав?
23 мар 12, 20:49    [12304605]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
AMonkeys
Guest
sixers,
имел в виду создание таблицы.
23 мар 12, 20:53    [12304623]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
NETClient
Member

Откуда:
Сообщений: 461
N.Ivankin
JohnDan,
как вариант заюзать FGAC
Интересно, как?

AMonkeys
Я не могу рекомендовать гарантировать, что это далеко не всегда подойдет.
23 мар 12, 21:02    [12304653]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
AMonkeys
Guest
AMonkeys
Я не могу рекомендовать гарантировать, что это далеко не всегда подойдет.

Согласен.
А что же подойдет по Вашему мнению?
23 мар 12, 21:09    [12304673]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
NETClient
Member

Откуда:
Сообщений: 461
AMonkeys,

Если цель - отслеживать инкремент, то SCN еще куда не шло, а вот преобразование его в timestamp...
23 мар 12, 21:57    [12304831]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2676
Имхо, триггер - наиболее универсальное решение.
И при этом, данные об изменениях будут лежать в наиболее удобном для разработчика формате (в каком именно - решать разработчику).
23 мар 12, 22:07    [12304852]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Makar4ik
Имхо, триггер - наиболее универсальное решение.
И при этом, данные об изменениях будут лежать в наиболее удобном для разработчика формате (в каком именно - решать разработчику).

наиболее унылое на колу мочало
24 мар 12, 13:00    [12306087]     Ответить | Цитировать Сообщить модератору
 Re: Узнать дату изменения записи  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10053
orawish
наиболее унылое на колу мочало


Дa, унылое. Но вначале надо определиться с временем изменения. Время изменения записи и время фиксации изменения это два разных значения. Соответствено, ORA_ROWSCN записи меняется между изменением записи и фиксацией изменения. То есть тригер видит время изменения и его ORA_ROWSCN a пребразование ORA_ROWSCN в таймстемп позже (при условии пребразование возможно) скоре всего даст время фиксации изменения. В любом случае FireX должен определится что он считает временем изменения.

SY.

Сообщение было отредактировано: 24 мар 12, 16:48
24 мар 12, 15:57    [12306777]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить