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

clever101
博客专家认证
2007-06-14 10:34:31
计划创建一个触发器。

建表:
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.
...全文
390 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
piml_lv 2007-06-14
  • 打赏
  • 举报
回复
!
clever101 2007-06-14
  • 打赏
  • 举报
回复
问题解决了,将:NEW.ID:=Test_ID; 改为 :NEW.Test_ID:=Test_ID;

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧