zoukankan      html  css  js  c++  java
  • 【存储过程】输入学生的姓名,打印出学生的最高分、最低分、平均分

     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;

  • 相关阅读:
    两台centos,用yum install 安装,一台成功,一台失败
    django 删除默认app
    FFmpeg
    安装nginx
    django markdown格式化变量
    安装python3.8
    安装 docker
    Centos7 安装selenium webdriver环境
    收集网页数据方法
    logstash 6.3.2下载地址
  • 原文地址:https://www.cnblogs.com/lwl80/p/13234670.html
Copyright © 2011-2022 走看看