
求一个oracle触发器的写法:
1.SQL语句建立下列关系模型。学生关系Student(学号SO,姓名name,性别SEX,,日Birth,所在系DEPT,所得学分CREDIT),关键字...
1. SQL语句建立下列关系模型。
学生关系Student (学号SO,姓名name,性别SEX,,日Birth,所在系DEPT,所得学分CREDIT),关键字为学号SO;
课程关系Course(课程号CO,课程名name,学时HOUR,学分CREDIT),关键字为课程号CO;
选课关系CS(学号SO,课程号CO, 分数G),关键字为学号SO,课程号CO
2. 用PL/SQL建立触发器,以实现根据学生选课所得分数自动维护学生所得的学分。
3. 用PL/SQL建立触发器,根据课程的容量限制选课人数。(选作)
4. 用PL/SQL建立触发器实现下列约束,如果一个学生有20个及以上学分不及格,就不允许他再选课。(选作)
求第二题的写法,另外,
下边这个是我试着写的触发器,说有编译错误,求问为什么。。
create or replace trigger str
after update
on CS74
for each row
begin
update student74
set credit = 0
where so = :new.so
end;
/ 展开
学生关系Student (学号SO,姓名name,性别SEX,,日Birth,所在系DEPT,所得学分CREDIT),关键字为学号SO;
课程关系Course(课程号CO,课程名name,学时HOUR,学分CREDIT),关键字为课程号CO;
选课关系CS(学号SO,课程号CO, 分数G),关键字为学号SO,课程号CO
2. 用PL/SQL建立触发器,以实现根据学生选课所得分数自动维护学生所得的学分。
3. 用PL/SQL建立触发器,根据课程的容量限制选课人数。(选作)
4. 用PL/SQL建立触发器实现下列约束,如果一个学生有20个及以上学分不及格,就不允许他再选课。(选作)
求第二题的写法,另外,
下边这个是我试着写的触发器,说有编译错误,求问为什么。。
create or replace trigger str
after update
on CS74
for each row
begin
update student74
set credit = 0
where so = :new.so
end;
/ 展开
3个回答
展开全部
这个我知道,因为我也犯过类似的错误,其实本身创建触发器语句没什么错误。但是因为你是在SQL窗口下运行这些代码就会出现编译错误,那么如果你换一个窗口--比如命令窗口(oracle 10g)这样呢创建触发器,函数,过程就都不会游编译错误了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
update student74
set credit = 0
where so = :new.so 中的命令没有结束需要在 :new.so 添加 ;
set credit = 0
where so = :new.so 中的命令没有结束需要在 :new.so 添加 ;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
create or replace trigger str
after update
on CS74
for each row
begin
update student74
set credit = 0
where so = :new.so;
end;
/
after update
on CS74
for each row
begin
update student74
set credit = 0
where so = :new.so;
end;
/
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询