Oracle SQL триггер - как блокировать запросы / процедуры, которые происходят после вызова триггера - PullRequest
0 голосов
/ 11 сентября 2018

Меня попросили создать триггер, который не позволяет системе печатать документ без специального поля.Я построил триггер, чтобы выдавать сообщение об ошибке, когда такая ситуация возникает, и она работает.

Проблема в том, что после того, как мой триггер вызван и всплывающее окно закрыто, система вызывает / выполняет другие SQL-запросы и процедуры PL / SQL, которые изменяют данные в строке (они обновляют номер документас автоматическим увеличением и т. д. и т. д., что не должно происходить для документа, который еще не был напечатан).В результате он позволяет пользователю выполнять действия с документом, которые должны быть заблокированы (например, удаление), что может испортить нумерацию всех документов, созданных впоследствии.После всего сказанного у меня возникает вопрос: как я могу заблокировать кучу всех тех обновлений, которые происходят после того, как мой триггер активирован и всплывающее окно закрыто?

Заранее спасибо

С уважением, Przemek

1 Ответ

0 голосов
/ 12 сентября 2018

Использовать переменную флага.Как только вы подтвердите, что определенного поля нет, измените этот флаг на 1. Выполните проверку If Else, а затем вызовите процедуры соответствующим образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...