我“不小心”创建了一个触发器,它不允许任何人在数据库上执行 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;
最佳答案
只需先编辑触发器即可。删除这部分。
RAISE_APPLICATION_ERROR (
num => -20000,
msg => 'ERROR, no changes to database allowed!');
你可以添加:
dbms_output.put_line('fine');
这将停止在您的任何 ddl 上引发异常。它应该工作。
关于database - DDL 触发器 - 无法禁用触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50119034/