文档解释
ORA-30515: suspend triggers cannot have BEFORE type
Cause: An attempt was made to create a trigger that fires before execution suspended. This type of trigger is not supported.
Action: Do not attempt to create a trigger that fires before execution suspended.
ORA-30515 错误是由于用户企图执行一个无效的 ALTER TRIGGER 或 ENABLE/DISABLE TRIGGER 语句导致的。比如说,当用户试图修改一个 before type 的 trigger 的状态而执行了一个悬挂(suspend)该 trigger 的操作,则会发生这个错误。
官方解释
ORA-30515: suspend triggers cannot have BEFORE type
这个错误消息表明,当前已有一个 before type 的 trigger 被悬挂,因而,用于悬挂该 trigger 的 ALTER TRIGGER or ENABLE/DISABLE TRIGGER 语句失败。
常见案例
ALTER TRIGGER trg_bef DISABLE;
此时会出现 ORA-30515,表示悬挂一个 before type 的 trigger 是不允许的。
正常的处理方法及步骤为:
首先,检查trigger 的 type 是 before 类型;
然后,更改 trigger 的 type 为after 类型;
之后,再执行 ALTER/DISABLE 语句。
ALTER TRIGGER trg_aft AFTER ALTER TRIGGER trg_aft DISABLE;