2010-03-04 2 views
0

Я использую VB.Net 2008 и ADO.Net для пакетного обновления в нашей базе данных Oracle. Обновления работают, но перед обновлением строки есть триггер, чтобы обновить дату окончания сеанса. Итак, если я пытался установить дату окончания (через пакетное обновление) до 31 января 2010 года, но у члена была претензия, обработанная 2 февраля 2010 года, триггер заставил бы дату завершения быть 2- февраль-2010. Однако триггер НЕ выполняется при запуске пакетного обновления?Триггер не выполняется при запуске пакетного обновления

Есть ли опция DB DB администратора, которая отключила бы триггеры для пакетного обновления?

+0

Просьба указать источник запуска. В SQL * Plus вам нужно будет выпустить 'SET LONG 40000', а затем' SELECT TRIGGER_BODY FROM ALL_TRIGGERS WHERE TRIGGER_NAME =: my_trigger' –

ответ

0

Команда альтер триггер может быть использован для отключения триггера,

ALTER TRIGGER trigger_name DISABLE 

Это покажет включено/выключено состояние всех триггеров,

select trigger_name, status from user_triggers 
+0

Триггер включен и работает нормально, просто выполняется при запуске пакетного обновления. – 2010-03-04 14:40:40

2

прямая нагрузка путь через SQL * Погрузчик может отключать и повторно включать триггеры, как описано here

Что делает пакетное обновление. Возможно, если он делает DELETE + INSERT, а не UPDATE, тогда триггер не будет срабатывать.

Смежные вопросы