日期:2014-05-17  浏览次数:20891 次

同样的语句,oracle8i通过,oracle10g不过
同样的语句,oracle8i通过,oracle10g不过  
想创建一个触发器调用一个序列,实现字段自动增长。
在oracle8i,某用户下

SQL>   create   table   book(
2   id   integer   not   null   primary   key,
3   book_name   varchar2(100)
4   );

表已创建。

SQL>   commit;

提交完成。

SQL>   create   sequence   seq_book_id
2   start   with   1   increment   by   1
3   minvalue   1   maxvalue   9999999
4   nocycle   cache   20;

序列已创建。

SQL>   create   or   replace   trigger   tri_book_id
2   before   insert   on   book
3   for   each   row
4   begin
5   select   seq_book_id.nextval   into   :new.id   from   dual;
6   end;
7   /

触发器已创建

SQL>  

但是在oracle10,system用户下执行以上语句出错,触发器创建不成,提示大概是:
WARNING:TRIGGER   CREATED   WITH   COMPILATION   ERRORS.

是什么原因?



------解决方案--------------------
system用户9i和10g的默认角色是不一样的,8i没用过,可以考虑一下这方面的原因
------解决方案--------------------
book表是system用户创建的吗?
------解决方案--------------------
你用的是同一个用户登陆的吗?