create or replace trigger trg_dropdeny
before drop on database
begin
if lower(ora_dict_obj_name())='test'
then
raise_application_error(
num=>-20000,
msg=>'你疯了,想删除表'||ora_dict_obj_name()||'?!!!'||'你完了,警察来抓你了...');
end if;
end;
create table test(a number);
drop table test;
CREATE OR REPLACE TRIGGER trg_dropdeny
before drop on database
begin
if (sys.login_user!='SYS')
then
raise_application_error(
num=>-20000,
msg=>'You can not delete table ' || ora_dict_obj_name() || ' ! ');
end if;
end;