防止oracle 对象被意外删除之触发器版

废话不多说,直接看代码

create or replace trigger del_deny
before drop or truncate on database
declare
l_errmsg varchar2(200):= '请勿在库任何对象!';
begin

  if ora_sysevent = 'DROP' then
   raise_application_error(-20001, ora_dict_obj_owner || '.' || ora_dict_obj_name || ' ' || l_errmsg);
  elsif ora_sysevent = 'TRUNCATE' then
   raise_application_error(-20001, ora_dict_obj_owner || '.' || ora_dict_obj_name || ' ' || l_errmsg);
  end if;

 exception
 when no_data_found then
  null;
 end;

猜你喜欢

转载自st-weicr.iteye.com/blog/1321039
今日推荐