Существует ряд атрибутных функций, которые разрешается использовать в системных триггерах. Подобно триггерным предикатам (INSERTING, UPDATING и DELETING), они позволяют получать информацию об активизирующем событии в теле триггера. Хотя эти функции можно вызывать и из других блоков PL/SQL (не только в теле системного триггера), возвращаемый ими результат не всегда будет достоверным. Атрибутные функции событий описаны в таблице 11.5.
Использование события SERVERERROR
Событие SERVERERROR применяется для отслеживания ошибок, происходящих в базе данных. Код ошибки можно узнать в триггере посредством атрибутной функции SERVER_ERROR. Она возвращает коды ошибок, находящихся в стеке, но не выдает сообщений, соответствующих этим кодам.
Решить эту проблему можно с помощью процедуры DBMS_UTILiTY. FORMAT_ERROR_STACK. Даже если сам триггер не приводит к ошибке, эта процедура обеспечивает доступ к стеку ошибок в PL/SQL. Приведем пример, где ошибки регистрируются в следующей таблице:
< Предыдущая | Следующая > |
---|