求一oracle下disable某一用户下的所有触发器的sql语句。目前SELECT TRIGGER_NAME FROM ALL_TRIGGERS WHERE OWNER='myUserName';可以查询处某一用户下所有的触发器。但接下来如何遍历disable请帮忙。

解决方案 »

  1.   

    try:spool d:\disable_trigger.sql 
    set heading off 
    set feedback off
    SELECT 'ALTER TRIGGER '||TRIGGER_NAME||' DISABLE;' FROM ALL_TRIGGERS WHERE OWNER='myUserName'
    spool off;@d:\disable_trigger.sql
      

  2.   

    还得继续求助。
    我把这条sql语句通过JDBC执行。语句为:SELECT 'ALTER TRIGGER ' ||TRIGGER_NAME ||' DISABLED;' FROM ALL_TRIGGERS WHERE OWNER='myUserName'可是发现没有生效,好像只是把遍历出来alter触发器的语句输出来了。请问用JDBC直接调用删除所有用户下的触发器的语句是不是除了执行上面的语句外,还有附加的其它语句?
      

  3.   

    补充一个,我是oracle10g xe版的,这个不会影响什么吧
      

  4.   

    是这个SELECT 'ALTER TRIGGER '  ||TRIGGER_NAME  ||' DISABLE;' FROM ALL_TRIGGERS WHERE OWNER='myUserName' 。但是依然没有被执行,但是把这个输出的内容执行是正确的结果。