小白一枚,刚学习oracle 触发器,结果在scott用户下建了一个名为scott_trigger的触发器 ,代码如下:CREATE OR REPLACE TRIGGER scott_trigger
BEFORE DDL
ON SCHEMA
BEGIN
RAISE_APPLICATION_ERROR(-20005,'禁止scott用户一切DDL命令操作!');
END;因为触发器禁止scott用户的一切DDL命令操作,导致我现在无法删除或者停用这个触发器,请问哪位老师有解决办法,在此多谢!

解决方案 »

  1.   

    禁用触发器:alter trigger scott_trigger disable;
      

  2.   


    -- 楼主是哪个版本的库。
    SQL> 
    SQL> CREATE OR REPLACE TRIGGER scott_trigger
      2  BEFORE DDL
      3  ON SCHEMA
      4  BEGIN
      5  RAISE_APPLICATION_ERROR(-20005,'禁止scott用户一切DDL命令操作!');
      6  END;
      7  /
    Trigger created
    SQL> create  table test(id int, name varchar(10));
    create  table test(id int, name varchar(10))
    ORA-00604: 递归 SQL 级别 1 出现错误
    ORA-20005: 禁止scott用户一切DDL命令操作!
    ORA-06512: 在 line 2
    SQL> drop trigger scott_trigger;
    Trigger dropped
    SQL> create  table test(id int, name varchar(10));
    Table created
    SQL> drop table test purge;
    Table droppedSQL>