资源描述:
《实验五存储过程运用答案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、试验五存储过程应用1.创建一存储过程xscj_show,显示每个学生的学号、姓名、课程名、成绩,然后执行该存储过程。setserveroutputon;createorreplaceprocedurexscj_showisv_xhchar(6);v_namechar(8);v_kcmchar(20);v_cjnumber;cursorbfisSelectxs.xh,xm,kcm,cjFromxs,kc,xs_kcWherexs.xh=xs_kc.xhandkc.kch=xs_kc.kch;beginopenbf;fetchbfintov_xh,v_name
2、,v_kcni,v_cj;wh订ebf%FOUNDloopdbms_output.put_line(v_xh
3、「
4、
5、v_name
6、「
7、
8、v_kcm
9、'丨丨to_char(v_cj));fetchbfintov_xh,v_name,v_kcm,v_cj;endloop;endxscj_show;execxscj_show;2.创建一存储过程proc2,显示指定学生指定课程的成绩,然后执行该存储过程.CREATEORREPLACEPROCEDUREproc2(v_xhINvarchar2,v_kcminvarchar2,v_cjOUTnumber)ASBEGI
10、NSELECTcjINTOv_cjFROMXS,KC,XS_KCWHEREXS.XH=XS_KC.XHandkc.kch=xs_kc.kchandxs.xh=v_xhandkcm=v_kcm;ENDproc2;DECLAREv_cjnumber;beginproc2('20090T,'计算机网络',v_cj);dbms_output.put_line(to_char(v_cj));end;1.创建一存储过程proc3,显示其指定课程的成绩在指定范围内的学生学号、姓名、课程名和成绩,并返回其人数,然后执行该存储过程。createorreplaceproced
11、ureproc3(s_kcminvarchar2,cj_startinnumber,cj_endinnumber,rsoutnumber)isv_xhchar(6);v_namechar(8);v_kcmchar(20);v_cjnumber;cursorbfisSelectxs.xh,xm,kcm,cjFromxs,kc,xs_kcWherexs.xh=xs_kc.xhandkc.kch=xs_kc>kchandkcm=s_kcmandcj>=cj_startandcj<=cj_end;beginopenbf;loopfetchbfintov_xh,v_
12、name,v_kcm,v_cj;dbms_output>put_line(v_xhlr'llv_namel「fllv_kcmlrfllto_char(v_cj));exitwhenbf%NOTFOUND;endloop;Selectcount(*)intorsFromxs,kc,xs_kcWherexs.xh=xs_kc.xhandkc.kch=xs_kc=cj_startandcj<=cj_end;dbms_output>put_line(to_char(rs));endproc3;declarersnumbe
13、r;beginproc3C计算机网络;60,90,rs);end;1.创建一存储过程xs_update,用于对指定学号指定课程名称的学生成绩进行修改。CREATEORREPLACEPROCEDURExs_update(v_xhINvarchar2,v_kcminvarchar2,v_cjinnumber)ASBEGINupdatexs_kcsetcj=v_cjwherexh=v_xhandkchin(selectkchfromkcwherekcm=v_kcm);ENDxs_update;2.创建一存储过程,用于统计每个专业计算机基础成绩在各个分数段的学生人
14、数。分数段划分为:低于60分,60〜70分,70〜80分,80〜90分,90〜100分。专业低于6060〜7070〜8080〜9090〜100计算机03754CREATEORREPLACEPROCEDURExs_tj(v_kcmINvarchar2)isv_zymchar(20);v_count_cjlnumber;v_count_cj2number;v_count_cj3number;v_count_cj4number;v_count_cj5number;cursorbfisSelectdistinctzymFromxs;beginopenbf;loop
15、fetchbfintov_zym;selectcount(*)in