Oracle之创建存储过程SQL语句

一、某学生成绩大于60分,输出good;某学生成绩小于60分输出oh no。(在输出中查看信息)

~需要一张成绩表单,包含成绩信息和学生学号。 1、创建存储过程。

create or replace procedure myprocedure(sid in number)
as
exam number;
begin
select * from score where sid=score.userid;
dbms_output.put_line(exam);
if exam>60 then
dbms_output.put_line(good);
else
dbms_output.put_line(oh no);
end if;
end myprocedure;

2、调用该存储过程,括号内为学生学号。

begin
myprocedure(1007);
end;

二、若全班平均成绩大于等于60分,输出good;若平均成绩小于60分,每位同学成绩在原来基础上+5分(做循环),直到输出为good,停止循环。

~需要一张成绩表单,包含所有学生成绩。 1、创建存储过程。

create or replace procedure system.scr_pro
as
avgscnum number;
begin
  select avg(scnum) into avgscnum from system.score;
  while avgscnum<60 loop
    select avg(scnum) into avgscnum from system.score;
  dbms_output.put_line(avgscnum);
  if avgscnum>=60 then
    dbms_output.put_line(good);
  else
    update system.score set scnum=scnum+5;
  end if;
 end loop;
end scr_pro;

2、调用该存储过程。

begin
  system.scr_pro;
end;

~注: 1、空格、分号在英文状态下输入; 2、千万不要忘记,该写分号时,一定不能忘(自己就吃了亏); 3、敲代码,练习自己的逻辑思维。

经验分享 程序员 微信小程序 职场和发展