Как я могу узнать, почему все мои пакеты схемы базы данных Oracle внезапно получают недопустимый статус? Когда я перекомпилирую его, недопустимые объекты успешно компилируются. Я создал триггер "до ddl", но мне это не помогло. Кроме того, я запрашиваю у user_errors, чтобы узнать, в чем проблема, но в этом представлении нет ошибок. Есть предложения?
Вот мой аудит таблицы и триггер:
create table invalidations (
operation varchar2(30),
invalidating_object varchar2(30),
invalidating_owner varchar2(30),
invalidated_object varchar2(30),
invalidated_owner varchar2(30),
invalidation_date date,
ipaddr varchar2(30),
host varchar2(30),
curruser varchar2(30),
currschema varchar2(30),
fgjob number,
bgjob number
);
create or replace trigger befddl_trg
before ddl
on schema
declare
begin
insert into invalidations
select ora_sysevent, ora_dict_obj_name, ora_dict_obj_owner, d.name, d.owner, sysdate,
SYS_CONTEXT('USERENV', 'IP_ADDRESS', 15)
,SYS_CONTEXT('USERENV', 'HOST', 16)
,SYS_CONTEXT('USERENV', 'CURRENT_USER', 8)
,SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA', 8)
,SYS_CONTEXT('USERENV', 'FG_JOB_ID', 4)
,SYS_CONTEXT('USERENV', 'BG_JOB_ID', 4)
from all_dependencies d
where referenced_name = ora_dict_obj_name
and referenced_owner = ora_dict_obj_owner;
end befddl_trg;