, если вы создаете перед триггером обновления в таблице, и этот триггер не удалось по какой-либо причине пользователь не может обновить таблицу до тех пор, пока вы не исправите или не устраните триггер.so есть ли какой-либо способ предотвратить это? я имею в виду, если вы допустили ошибку при записи триггера и хотели, чтобы обновление продолжалосьпредотвращать оракул перед запуском обновления обновления, чтобы остановить обновление таблицы
ответ
Если ваша проблема в том, что вы потенциально создаете недопустимый триггер, тогда вы должны создать триггер в отключенном состоянии. Затем вы можете подтвердить, что он правильно компилируется, прежде чем включать его.
Это не помогает при ошибках во время выполнения.
Если вы заменили существующий триггер, новый код по-прежнему будет заменять старый и будет по-прежнему отключен. Если вы полагаетесь на код запуска для установки обязательного значения, это приведет к ошибке выполнения.
CREATE OR REPLACE TRIGGER TEST_TRIG
BEFORE INSERT ON TEST
FOR EACH ROW
DISABLED
BEGIN
:NEW.TEST_KEY := TEST_SEQ.NEXTVAL;
END;
Я имею в виду, если триггер был действительным в момент создания и запуска и в других случаях в базе данных, например, удаление таблиц или добавление ограничений к таблицам, которые делают триггер недействительным, и это заставило других пользователей не обновлять таблицу пока вы не зафиксируете триггер. так что есть ли способ записи перед триггером обновления в таблице, и если сбой триггера, вы можете обновить таблицу –
Вы можете добавить блок EXCEPTION, чтобы поймать все исключения и молча игнорировать их. Это хорошая наземная мина для будущих разработчиков, которые задаются вопросом, почему триггер обновления не делает то, что он должен делать. См. Http://www.orafaq.com/wiki/WHEN_OTHERS –
Найдите ошибку в триггере и исправьте ее. –