Триггер и sysdate

 
0
 
Oracle
ava
jsa | 19.01.2006, 06:37
Hi All!

есть проблема:
для таблицы на before insert из тригера идет заполенние поля date

:new.stdt:=sysdate

почему то иногда появляются записи в таблице такие что

stdt = trunc(stdt)
(на переход суток не сваливаю, так как за одно число достаточно большое количество записей, вставляемых с переодичностью как минимум несколько секунд)
и от этого все неправильно работает :(
в чем может быть проблема? даже ума не приложу :qstn

ЗЫЖ Oracle 9i R2
Comments (2)
ava
LSD | 19.01.2006, 18:08 #
1. такая проблема со всеми таблицами в БД, или только с одной? и случайно insert не из job-а выполняется? и вообще ситуация воспроизводимая?
2. попробуй создать простенькую табличку с одним столбцом date, сделать его первичным ключем и потестировать на ней
3. замени в триггере
:new.stdt:=sysdate

на
select sysdate sysdate into :new.stdt from dual;

4. вставь проверку stdt = trunc(sysdate, 'DD') в триггер, и пиши в лог или выбрасываю исключение (это что бы проверить что дело не в функции sysdate или наоборот в ней.
ava
jsa | 20.01.2006, 09:52 #
не, insert не из джоба, инсерт идет из продуры, вызваемой из перла
в этой же таблице сдалал новое поле date,
заполняю его в триггере
select sysdate sysdate into :new.field from dual;

без разницы
что

:new.stdt:=sysdate;

что

select sysdate sysdate into :new.field from dual;

работает одинково, т.е. как небыло состовляющей времени, так и нет

ЗЫЖ остальное буду пробовать
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
ava  LSD   jsa
advanced
Submit