这题的大体意思是这样的:
创建一个学生表和一个课程表,课程表 里面已经有几门可选课程,创建一个过程,调用课程时可以实现: 在向学生表插入信息,这信息包含学生选修课程,选修课程必须在 课程表 里面有的,如果课程表中没有则为非法插入,就发生异常, 过程要捕获这个异常。
创建一个学生表和一个课程表,课程表 里面已经有几门可选课程,创建一个过程,调用课程时可以实现: 在向学生表插入信息,这信息包含学生选修课程,选修课程必须在 课程表 里面有的,如果课程表中没有则为非法插入,就发生异常, 过程要捕获这个异常。
v_count number;
exp exception ;
begin
select count(*) into v_count from course表 where c_name =p_count;
if v_count=1 then
insert into student(...) value (....,p_course);
else
raise exp;
end if;
commit;
exception
when exp then
if v_count=0 then
insert into exception表名 values(...,'没有记录');
else
insert into exception表名 values(...,'同一课程设置了两次');
end if;
when others then
insert into exception表名 values(...,'插入学生表时出错');
commit;
end ;--注意,表名不要和oracle的关键字相同