Вы можете создать триггер AFTER CREATE
в своей схеме. Он будет срабатывать после создания каждого объекта схемы, но вы можете ограничить то, что вы регистрируете, используя такие функции, как ora_dict_obj_name
.
Посмотрите здесь, чтобы узнать, какие функции действительно доступны. для AFTER CREATE
триггеров.
Пример триггера может быть:
create table log_test (event_dt date, event_text varchar2(100));
create or replace trigger test_pkg_alter_log_trg
after create on <YOUR_USER>.schema
begin
insert into log_test(event_dt, event_text)
values (sysdate, ora_dict_obj_name);
end;
Создание такого триггера добавит накладные расходы на любое действие CREATE
, а не только на перекомпиляцию вашего пакета. Следует оценить, оправдывают ли накладные расходы ваши потребности. Oracle уже поставляется с большинством (всеми?) регистрируемыми событиями, поэтому я предлагаю вам также изучить, например, представление DBA_AUDIT_TRAIL
(события action in (94, 97, 95, 98)
), чтобы проверить, можно ли его использовать для ваших целей. Полный список действий в этом представлении можно получить по select * from audit_actions
.
29.10.2015