用一个简单的例子来说明的存储过程的用法:
一、功能
通过存储过程自动计算出每位学生的总成绩和平均成绩,
同时,如果学生在课外课程中获得的评价(comment1)为A ,就在总成绩上加20分。现假设存在两张表
一张是学生成绩表(studnet) ,
字段为:stdId,math,article,language,music,sport,total,average,step
一张是学生课外成绩表(out_school):
字段为:stdId,parctice,comment
二、建表
--学生成绩表
CREATE TABLE STUDENT
(
STDID VARCHAR2(30),
MATH NUMBER,
ARTICLE NUMBER,
LANGUAGE NUMBER,
MUSIC NUMBER,
SPORT NUMBER,
TOTAL NUMBER,
AVERAGE NUMBER,
STEP CHAR(2)
);
--学生课外成绩表
CREATE TABLE OUT_SCHOOL
( STDID VARCHAR2(30),
COMMENT1 VARCHAR2(1),
PARCTICE VARCHAR2(30)
);
三、自定义数组类型
-- 定义数组类型myArray
create or replace package myPackage is
type stdInfo is record(stdId varchar(30),comment1 varchar(1));
type myArray is table of stdInfo index by binary_integer;
end myPackage;
四、存储过程
create or replace procedure autocomputer(step in varchar)
is
rsCursor SYS_REFCURSOR;