• 【存储过程】输入学生的姓名,打印出学生的最高分、最低分、平均分


     1 create or replace procedure showStudentInfo(ThisStudentName varchar2)
     2 as
     3   thismax number;
     4   thismin number;
     5   thisavg number;
     6   sno number;
     7   line student%rowtype;
     8 begin
     9   select sid into sno from student where sname=ThisStudentName;  --先求学号,检测学号是否合法,不存在立即进入异常
    10   select max(cmark),min(cmark),trunc(avg(cmark),2) into thismax,thismin,thisavg
    11   from mark
    12   where sid = sno;
    13   dbms_output.put_line(ThisStudentName||'的最高分为:'||thismax||'最低分为:'||thismin||'平均分为:'||thisavg);
    14 exception
    15   when no_data_found then
    16        dbms_output.put_line(ThisStudentName||'不存在,请核对!');
    17   when too_many_rows then
    18       for line in(select*from student where sname=ThisStudentName) loop      ---取出学生表的每一行  循环取出
    19         select max(cmark),min(cmark),trunc(avg(cmark),2) into thismax,thismin,thisavg 
    20         from mark
    21         where sid=line.sid;
    22          dbms_output.put_line(line.sid||ThisStudentName||'的最高分为:'||thismax||'最低分为:'||thismin||'平均分为:'||thisavg);
    23       end loop;
    24 end;
    1 -----调用---
    2 set serveroutput on
    3 begin 
    4   showStudentInfo('萧瑾');
    5 end;

  • 相关阅读:
    Mysql的表名/字段名/字段值是否区分大小写
    20个PHP程序性能优化的方法
    PHP中大括号用法
    PHP伪类型和伪变量
    PHP中关于取模运算及符号
    PHP之array_flip()方法
    PHP之implode()方法
    PHP中is_null()方法
    原型模式(Prototype)
    适配器模式
  • 原文地址:https://www.cnblogs.com/lwl80/p/13234670.html
Copyright © 2020-2023  润新知