Текущий архив: 2006.12.17;
Скачать: CL | DM;
ВнизВ тригере Before Update узнать имя измененного field а Найти похожие ветки
← →
AntiUser © (2006-10-08 11:39) [0]в текстовом виде и получить его значения. Возможно?
Oracle9i
Или статейки на ведение логов. Но надо обязательно полулучить имя фиелда, т.к. таблица ОГРОМНАЯ и логить весь рекорд бесмысленно.
← →
Desdechado © (2006-10-08 18:17) [1]IF( :new.fld1 <> :old.fld1 ) THEN -- поле fld1 было изменено
← →
Fay © (2006-10-08 21:17) [2]2 Desdechado © (08.10.06 18:17) [1]
С null сравнивать нехорошо.
← →
Desdechado © (2006-10-08 21:45) [3]> С null сравнивать нехорошо
А где я с ним сравнивал?
мое fld1 NOT NULL :))
← →
Fay © (2006-10-09 02:10) [4]2 Desdechado © (08.10.06 21:45) [3]
> мое fld1 NOT NULL :))
А это имеет значение в before-триггере ?
← →
Desdechado © (2006-10-09 10:53) [5]> А это имеет значение в before-триггере ?
Конечно. Если будет NULL, то СУБД все равно не пропустит.
Кстати, протоколирование обычно делают в after-триггерах.
Да, и протоколировать одно поле часто бессмысленно, ибо оно может быть значимым только в связке с другими полями.
← →
Sergey13 © (2006-10-09 11:03) [6]> [0] AntiUser © (08.10.06 11:39)
> Но надо обязательно полулучить
> имя фиелда, т.к. таблица ОГРОМНАЯ и логить весь рекорд бесмысленно.
Надо сначала решить, что ты будешь делать с этим логом. В 99% случаев, ИМХО, детальный лог - это бессмысленная нагрузка на систему.
← →
Petr V. Abramov © (2006-10-09 11:45) [7]может, в сторону logminer глянуть? в логах-то уж ВСЕ ходы записаны
← →
AntiUser © (2006-10-09 18:01) [8]Нашел (точнее подсказали) вот это: http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:59412348055
Полезно, на этой основе сделал то, что нужно.
Страницы: 1 вся ветка
Текущий архив: 2006.12.17;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.037 c