问题描述
- oracl 存储过程,函数调用
-
1 编写一个函数,要求调用时传入学生姓名,返回学生的平均成绩(注意:有学生姓名重名的返回学号靠前的学生的平均成绩)2 编写一个存储过程,新建一张表,每次执行的时候,将所有课程分数不及格的学生的学号,姓名,课程名,任课老师,成绩插入到表中,表中只存最新的数据
解决方案
第一个大致是这样:
CREATE OR REPLACE FUNCTION F1 (pi_name in varchar2(20)) return number
is
v_cj number(3,2);
begin
select AVG( all cj)
into vcj
from table1
where name = pi_name
and ...
;
return v_cj;
end;
具体的你还是要自己根据表结构写一下,不过我建议把学号这种唯一属性的字段作为表的主键,函数的传入参数也使用这个,比较好;
第二个过程,无非是在插入语句执行前先删除一下表中已存在的数据,这样就可以保证只存放最新的了
解决方案二:
这个取决于你的表结构。
基本写法参考
http://www.cnblogs.com/chinafine/articles/1776085.html
解决方案三:
Mysql通过函数调用存储过程
解决方案四:
第一个的话主要是写语句的时候做下排序。
第二个在每次插入前删除表数据就好了
时间: 2024-12-24 11:02:26