DDL触发器 - 无法禁用触发器

时间:2018-05-01 15:15:16

标签: database oracle triggers

我"意外"创建了一个不允许任何人在数据库上执行DDL的触发器。现在我无法对我的数据库做任何事情。即使sysdba也不能放弃此触发器。我试过禁用它,但仍然在它之前触发它。这是我启用的邪恶触发器:

CREATE OR REPLACE TRIGGER Prevent_Changes
BEFORE DDL ON DATABASE
  BEGIN
    RAISE_APPLICATION_ERROR (
      num => -20000,
      msg => 'ERROR, no changes to database allowed!');
  END;

1 个答案:

答案 0 :(得分:2)

首先编辑触发器。删除此部分。

RAISE_APPLICATION_ERROR (
      num => -20000,
      msg => 'ERROR, no changes to database allowed!');

您可以添加:

dbms_output.put_line('fine');

这将停止在您的任何ddl上引发异常。它应该工作。