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

“创建的触发器带有编译错误”是怎么回事?
计划创建一个触发器。

建表:
create   Table   intel.T_Test(
Test_ID   int   not   null,
STUNAME   VARCHAR2(20),
SCHOOL   VARCHAR2(40),
primary   key   (Test_ID)
);

创建自增序列:
CREATE   SEQUENCE   intel.test_seq
INCREMENT   BY   1
START   WITH   1
MAXVALUE   9999999;

创建触发器(设表的自增列为Id):
CREATE   OR   REPLACE   TRIGGER   intel.seq_trigger
      BEFORE   INSERT   ON   intel.T_Test
      FOR   EACH   ROW
DECLARE
      Test_ID   number;
BEGIN  
      SELECT   test_seq.nextval   INTO   Test_ID   FROM   intel.T_Test;
      :NEW.ID:=Test_ID;
END   seq_trigger;

        说明一下,这里的intel是表空间。

        在创建触发器时出现错误:警告:创建的触发器带有编译错误。

        于是到网上搜索,有些大虾提示说:加一句show   error;   看看具体是什么错误。
于是我加了,还只是提示:警告:创建的触发器带有编译错误。后来我发现错误具体在:NEW.ID:=Test_ID;这一句,但是到底该怎么该呢?我使用的数据库系统是oracle   10g,   操作系统是Win   xp   sp2.

------解决方案--------------------
!