oracle怎么录入成绩,oracle-存储过程实现考生成绩查询-012

招生系统通过存储过程实现考生成绩查询表

登记考生信息和考试成绩,根据考生成绩和录取分数线判断是否录取,汇总考生信息,考试科目五门单科过线,总分过线的才被录取。

1.创建考生信息表

create table stuinfo

(

id int,

name varchar2(10),

en int,

ma int,

zz int,

zy int,

os int

);

2.创建查询成绩的表解构

create table sstuinfo as select * from stuinfo where 1=2;

alter table sstuinfo add total int;

alter table sstuinfo add flag varchar2(10);

--alter table sstuinfo modify flag varchar2(20);

//可以改变flag的长度

3.创建存储过程

create or replace procedure proc_1(p_en int,p_ma int,p_zz int,p_zy int,p_os int,p_total int)

--输入过线分数

as

cursor mycur is select * from stuinfo;

v_row stuinfo%rowtype;

v_total sstuinfo.total%type;

v_flag sstuinfo.flag%type;

begin

delete from sstuinfo;

--清空下查询成绩表

commit;

open mycur;--打开游标

fetch mycur into v_row;--读取下一行

while (mycur%found) loop

v_total:=v_row.en+v_row.ma+v_row.zz+v_row.zy+v_row.os;

if(v_row.en>=p_en and v_row.ma>=p_ma and v_row.zz>=p_zz and v_row.zy>=p_zy and v_row.os>=p_os)

--比较输入分数线与考生成绩

then

v_flag:='通过';

else

v_flag :='未通过';

end if;

insert into sstuinfo values(v_row.id,v_row.name,v_row.en,v_row.ma,v_row.zz,v_row.zy,v_row.os,v_total,v_flag);

--添加到考生查询成绩表

fetch mycur into v_row;

end loop;

commit;

close mycur;--关闭游标

end;

SQL>

--初始的考生成绩表

SQL> select * from stuinfo;

ID NAMEENMAZZZYOS

---------- ---------- ---------- ---------- ---------- ---------- ----------

1 a15465638595

2 a27465837585

--没有使用存储过程定义的考生查询成绩表

SQL> select * from sstuinfo;

no rows selected

--执行存储过程

SQL> exec proc_1(60,60,60,60,60,345);

PL/SQL procedure successfully completed

SQL>

SQL> set wrap off

--执行存储过程之后添加成功的结果

SQL> select * from sstuinfo;

ID NAMEENZZMAOSZYTOTAL FLAG

---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------

1 a15465638595362 未通过

2 a27465837585382 通过

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值