createorreplacefunction sf_score_pm(
p_in_stuid in varchar2,--学号
p_in_courseid in varchar2 --课程ID)return number
is
ls_pm number:=0;
ls_score number:=0;begin--获取该学生的成绩select t.score into ls_score from score t
where t.stuid = p_in_stuid
and t.courseid = p_in_courseid;--获取成绩比该学生高的人数selectcount(1)into ls_pm from score t
where t.courseid = p_in_courseid
and t.score>ls_score;--得到该学生的成绩排名
ls_pm:=ls_pm+1;return ls_pm;
exception
when no_data_found then
dbms_output.put_line('该学生的课程:'||p_in_courseid||'的成绩在成绩表中找不到');end;
CREATEORREPLACEFUNCTION DayString_to_DayNumber (
DayString NCHAR)RETURN NUMBER IS
DayNumber NUMBER(38,0);
n NUMBER(38,0);BEGINIF
instr(DayString,'W')>0THEN
n := to_number(replace(DayString,'W',''));
DayNumber := n *5;ENDIF;RETURN DayNumber;END;