【发布时间】:2021-02-01 06:17:43
【问题描述】:
我想创建一个触发器,该触发器在删除 oracle live sql 中的表时引发错误。在我的代码中,触发器已成功创建,但在尝试删除表时出现不同的错误,即显示遇到符号“Drop”
代码:
CREATE OR REPLACE TRIGGER drop_trigger
BEFORE DROP ON SCHEMA
BEGIN
RAISE_APPLICATION_ERROR (-20000,'Cannot drop the table');
END;
drop table emp;
错误:
Errors: TRIGGER DROP_TRIGGER
Line/Col: 5/3 PLS-00103: Encountered the symbol "DROP"
也试过换行 “在放弃 SCHEMA 之前” 和 "在删除数据库之前"
出现了新的错误,即 "ORA-01031: 权限不足"
代码在Oracle Live Sql上执行
【问题讨论】:
-
您编写的代码很好,应该会给您预期的结果。请参阅相同的here。但我从未体验过 Oracle 实时 SQL,所以我可以说是在触发器主体的末尾尝试
/看看它是否有效。否则可能是 Oracle live SQL 不允许删除任何对象或缺少权限。