如何删除(删除,删除)给定数据库中的所有触发器。
问题是应用程序需要数据库升级,并且在升级后不会继续执行触发器(suport,drop,create),应用程序升级失败。
答案 0 :(得分:9)
这将生成如何删除当前架构中所有触发器的命令:
select 'drop trigger ' || trigger_name || ';' stmt from user_triggers;
答案 1 :(得分:3)
您可以使用Oracle系统表创建用于删除触发器的脚本,如下所示:
select 'drop trigger ' || owner || '.' || trigger_name || ';' from all_triggers
请注意,有3个视图包含触发器:
答案 2 :(得分:3)
Google首次点击搜索查询:Drop all triggers - Oracle
BEGIN
FOR i in (select trigger_name,owner
from dba_triggers
where trigger_name like '%_BI%' and owner = 'myTesting' ) LOOP
EXECUTE IMMEDIATE 'DROP TRIGGER '||i.owner||'.'||i.trigger_name;
END LOOP;
END;
如果你真的想要删除数据库中的所有触发器,
BEGIN
FOR i in (select trigger_name,owner
from dba_triggers ) LOOP
EXECUTE IMMEDIATE 'DROP TRIGGER '||i.owner||'.'||i.trigger_name;
END LOOP;
END;