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

时间:2009-06-15 01:44:35

标签: 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  /

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

即使我使用

以SYS身份登录

sqlplus“sys / oracle as sysdba”

4 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:6)

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

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

答案 2 :(得分:0)

我认为在END之后缺少一个分号。 还要提到SYS.emp

答案 3 :(得分:0)

SQL>在插入或更新之前创建或替换TRIGGER policy_bull   EMP上的SALARY 2   3每行   4开始   5:new.salary:= 200;   6结束   7 /

你必须输入" NEW SALARY"是的,所以......或者在EMP上更新SALARY ......