oracle存储过程实例6,oracle存储过程综合实例

41528d3028836879cd698677c3999917.giforacle存储过程综合实例

本节将在前面学习的PL/SQL基础上分析一个较复杂的实例,以教会读者编写完整的PL/SQL程序的方法。 实例设计 1. 功能设计 某高校开发的研究生招生系统,要求设计PL/SQL程序对考生的成绩数据进行处理,处理的逻辑是根据每门专业课的最低分数线和总分的最低分数线自动将考生归类为录取考生、调剂考生和落选考生。 为此设计两个数据表,graduate数据表存放考生成绩,result数据表存放处理结果,PL/SQL程序完成的功能就是将graduate数据表中的数据逐行扫描,根据分数线进行判断,计算出各科总分,在result数据表中将标志字段自动添加上“录取”或“落选”。 2. 数据表设计 Graduate数据表结构如表9.3所示。 创建数据表 为了简化起见,实例的两个数据表都建立在默认的scott用户下,这样读者可以完全模拟实例一致的环境进行学习。 1. 创建graduate数据表 在图9.58所示的创建表的【一般信息】选项卡中按照下列步骤进行配置。 在【名称】文本框中输入“GRADUATE”。 在【方案】下拉列表框中选择“SCOTT”。 在【表空间】下拉列表框中选择“USERS”。 在【表结构定义区】按照图所示进行设置。 完成设置后单击按钮。 读者也可以在【SQLPlus Worksheet】中执行下列SQL代码,直接创建数据表SCOTT.GRADUATE。 ―――――――――――――――――――――――――――――――――――――― CREATE TABLE “SCOTT“.“GRADUATE“ ( “BH“ NUMBER(10) NOT NULL, “XM“ VARCHAR2(10) NOT NULL, “LB“ VARCHAR2(10) NOT NULL, “YINGYU“ NUMBER(4, 1) NOT NULL, “ZHENGZHI“ NUMBER(4, 1) NOT NULL, “ZHUANYE1“ NUMBER(4, 1) NOT NULL, “ZHUANYE2“ NUMBER(4, 1) NOT NULL, “ZHUANYE3“ NUMBER(4, 1) NOT NULL) TABLESPACE “USERS“ ―――――――――――――――――――――――――――――――――――――― 【配套程序位置】:第9章\ creategraduate.sql。 2. 创建result数据表 在图9.59所示的创建表的【一般信息】选项卡中按照下列步骤进行配置。 在【名称】文本框中输入“RESULT”。 在【方案】下拉列表框中选择“SCOTT”。 在【表空间】下拉列表框中选择“USERS”。 在【表结构定义区】按照图所示进行设置。 完成设置后单击按钮。 读者也可以在【SQLPlus Worksheet】中执行下列SQL代码,直接创建数据表SCOTT.RESULT。 ―――――――――――――――――――――――――――――――――――――― CREATE TABLE “SCOTT“.“RESULT“ ( “BH“ NUMBER(10) NOT NULL, “XM“ VARCHAR2(10) NOT NULL, “LB“ VARCHAR2(10) NOT NULL, “YINGYU“ NUMBER(4, 1) NOT NULL, “ZHENGZHI“ NUMBER(4, 1) NOT NULL, “ZHUANYE1“ NUMBER(4, 1) NOT NULL, “ZHUANYE2“ NUMBER(4, 1) NOT NULL, “ZHUANYE3“ NUMBER(4, 1) NOT NULL, “TOTALSCORE“ NUMBER(5, 1) NOT NULL, “FLAG“ VARCHAR2(4) NOT NULL) TABLESPACE “USERS“ ―――――――――――――――――――――――――――――――――――――― 【配套程序位置】:第9章\ createresult.sql。 录入数据 利用【表数据编辑器】向SCOTT.GRADUATE数据表录入下列实验数据。如图9.60所示。 读者也可以在【SQLPlus Worksheet】中执行下列SQL代码,直接向数据表SCOTT.GRADUATE中录入测试数据。 【配套程序位置】:第9章\ insertgraduate.sql。 程序设计 1. 创建处理过程scott.graduateprocess 在【SQLPlus Worksheet】中执行下列PL/SQL代码,创建处理过程scott.graduateprocess。执行结果如图9.61所示。 ――――――――――――――――――――――――――――――――――――― /*定义过程参数*/ create or replace procedure scott.graduateprocess( tempzhengzhi in scott.graduate.zhengzhi%type, tempyingyu in scott.graduate.yingyu%type, tempzhuanye1 in scott.graduate.zhuanye1%type, tempzhuanye2 in scott.graduate.zhuanye2%type, tempzhuanye3 in scott.graduate.zhuanye3%type, temptotalscore in scott.result.totalscore%type) as /*定义graduaterecord为记录型变量,临时存放通过游标从graduate数据表中提取的记录*/ graduaterecord scott.graduate%rowtype; /*定义graduatetotalscore为数值型变量,统计总分*/ graduatetotalscore scott.result.totalscore%type; /*定义graduatef

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值