无法在Oracle中使用SQLPlus创建触发器

udi*_*dit 1 oracle triggers

我正在学习Oracle,并想尝试创建一个触发器.我在sqlplus中尝试了这个例子.

SQL> CREATE OR REPLACE TRIGGER policy_bull BEFORE insert or update
  2  ON emp
  3  FOR EACH ROW
  4  BEGIN
  5    :new.salary := 200;
  6  END
  7  /
Run Code Online (Sandbox Code Playgroud)

第1行的错误:ORA-04089:无法在SYS拥有的对象上创建触发器

即使我使用SYS登录

sqlplus"sys/oracle as sysdba"

Jef*_*emp 7

您需要在空行上键入/告诉SQLPLUS运行该语句.


Unc*_*leO 6

Oracle禁止在SYS拥有的对象上创建触发器.

您是否将表emp创建为SYS?您可能希望成为常规用户.emp听起来不像系统表.