Могу ли я иметь триггер для событий «До» и «После»? - PullRequest
0 голосов
/ 28 февраля 2019

Я попробовал описанный выше сценарий с помощью следующего фрагмента кода

CREATE OR REPLACE TRIGGER test_bf_af2
AFTER LOGON ON SCHEMA and 
BEFORE LOGOFF ON SCHEMA

BEGIN
  --some logic
END;
/

, но дал мне сообщение об ошибке

Сообщение об ошибке: ORA-04079: неверная спецификация триггера

00000 - «неверная спецификация триггера»

* Причина: недопустим оператор create TRIGGER.

* Действие: проверьте правильность синтаксиса оператора.

Итак, возможно ли иметь оба типа или нет?если да, то как мне этого добиться?

1 Ответ

0 голосов
/ 28 февраля 2019

С помощью обычного триггера DML можно иметь несколько событий (INSERT, UPDATE) в одном и том же триггере.Однако время должно быть одинаковым: ДО или ПОСЛЕ.

То же самое с системными триггерами.Поскольку Oracle не поддерживает ни ДО, ни после входа в систему (после очевидных причин), вам нужно два отдельных триггера.

...