Hi,

I'm not sure of the code you would use to stop the drop statement but we use this trigger to keep track of all objects that we drop:

create or replace trigger dropobj_trig
after drop on database
begin
insert into del_log values (
user,
sysdate,
ora_dict_obj_name,
ora_dict_obj_owner,
ora_dict_obj_type);
end;

Hope it helps

Regards