日期:2014-05-17 浏览次数:20913 次
procedure sc_numberbiao(use_sno char, use_number char) is
have number; --用于确定是否存在表SC_NUMBER
cnumber number; --已有课程数量
excp_number exception; --自定义异常,用于确认用户选课熟练是否达到已有课程上限
begin
select count(*) into cnumber from course ;
if use_number > cnumber or use_number < 0 then
raise excp_number;
end if;
select count(*) into have from user_tables where table_name = 'SC_NUMBER';
if have <> 0 then
execute immediate 'update sc_number set cnonumber = use_number where sno = use_sno';
if sql%rowcount = 0 then
execute immediate 'insert into sc_number values (trim(use_sno), trim(use_number))';
dbms_output.put_line('插入学号为' || use_sno || '的学生选课门数为' ||
use_number);
else
dbms_output.put_line('更新学号为' || use_sno || '的学生选课门数为' ||
use_number);
end if;
else
execute immediate 'create table sc_number(sno char(20),cnonumber char(3))';
execute immediate 'insert into sc_number values (trim(use_sno), trim(use_number))';
dbms_output.put_line('建表sc_number并且插入学号为' || use_sno || '的学生选课门数为' ||
use_number);
end if;
commit;
exception
when excp_number then
dbms_output.put_line('现在共有' || cnumber || '门课程可供选择,用户输入' ||
use_number || '不合法');
end sc_numberbiao;