题目要求:
1,创建student表和result表 2,pl/sql对学生的成绩数据进行处理 3,处理的逻辑是根据每门专业课的最低分线和总分的最低分数线自动的将录取和落选
1,创建student表,和result表
学生信息表;
create table student( student_id number primary key,--学生id math number,--数学分数 chinaese number,--语文分数 en number,--英语分数 wenke number,--文科学分 likenumber number,--理科分数 zhuanyeke number,--专业分数 student_sum number --总分 );
学生录取状态表;
create table result( student_id number, enrollresult number );
2.插入一些考生的数据
student表插入数据;
理科 insert into student(student_id,math,chinaese,en,likenumber,STUDNET_SUM) values(4307211993,120,130,140,260,650); insert into student(student_id,math,chinaese,en,likenumber,STUDNET_SUM) values(4307211997,20,30,40,260,350); insert into student(student_id,math,chinaese,en,likenumber,STUDNET_SUM) values(4307211998,120,30,240,130,520); 理科专业 insert into student(student_id,math,chinaese,en,likenumber,zhuanyeke,STUDNET_SUM) values(4307211994,128,128,138,260,200,844); insert into student(student_id,math,chinaese,en,likenumber,zhuanyeke,STUDNET_SUM) values(4307211999,120,30,40,130,180,500); insert into student(student_id,math,chinaese,en,likenumber,zhuanyeke,STUDNET_SUM) values(4307211100,20,30,13,157,180,400); 文科 insert into student(student_id,math,chinaese,en,wenke,STUDNET_SUM) values(4307211995,110,140,50,270,550); insert into student(student_id,math,chinaese,en,wenke,STUDNET_SUM) values(4307211101,90,80,50,180,400); insert into student(student_id,math,chinaese,en,wenke,STUDNET_SUM) values(4307211102,110,120,80,230,540); 文科专业 insert into student(student_id,math,chinaese,en,wenke,zhuanyeke,STUDNET_SUM) values(4307211996,120,30,40,160,180,530);
result表插入数据;
insert into result values(4307211993); insert into rasult values(4307211997); insert into rasult values(4307211998); insert into rasult values(4307211994); insert into rasult values(4307211999); insert into rasult values(4307211100);
3,编写带参数的存储过程,记录考生的分数以及保存考生的录取状态 0表示落选,1表示录取
create or replace procedure pro_score(v_id number) is v_student_id student.student_id%type; v_math student.math%type; v_chinaese student.chinaese%type; v_en student.en%type; v_wenke student.wenke%type; v_like student.likenumber%type; v_zhuanye student.zhuanyeke%type; v_score number(7); begin select STUDENT_ID, MATH ,CHINAESE,EN ,WENKE ,LIKENUMBER ,ZHUANYEKE into v_student_id , v_math,v_chinaese,v_en ,v_wenke,v_like,v_zhuanye from student where student_id=v_id; v_score := v_math + v_chinaese + v_en + v_wenke + v_like + v_zhuanye; dbms_output.put_line('总分'||v_score); if v_score>500 then update result set ENROLLRESULT=1 where STUDENT_ID=v_id; dbms_output.put_line(v_student_id||'被录取了'); else update result set ENROLLRESULT=0 where STUDENT_ID=v_id; dbms_output.put_line(v_student_id||'落榜了'); end if; end;
4,创建游标,用于从student表中查询数据,并加入一个异常机制 0表示落选,1表示录取
set serveroutput on; create or replace procedure pro_score is myrow student%rowtype; v_score number(7); type type_cursor is ref cursor; rowcursor type_cursor ; begin open rowcursor for select * from student; loop fetch rowcursor into myrow ; v_score := myrow.math + myrow.chinaese + myrow.en + nvl(myrow.wenke,0) + nvl(myrow.likenumber,0) +nvl( myrow.zhuanyeke,0); dbms_output.put_line('总分'||v_score); exit when rowcursor%notfound; if v_score>500 then update result set ENROLLRESULT=1 where STUDENT_ID=myrow.student_id; dbms_output.put_line(myrow.student_id||'被录取了'); else update result set ENROLLRESULT=0 where STUDENT_ID=myrow.student_id; dbms_output.put_line(myrow.student_id||'落榜了'); end if; end loop; end; /
exec pro_score;
总分650
4307211993被录取了
总分350
4307211997落榜了
总分520
4307211998被录取了
总分854
4307211994被录取了
总分500
4307211999落榜了
总分400
4307211100落榜了
总分570
4307211995被录取了
总分400
4307211101落榜了
总分540
4307211102被录取了
总分530
4307211996被录取了
总分530
在游标中添加异常机制,实在是不知道怎么添加了,所以把代码和思路贴出来让大家帮我看一下;怎么解决这个问题
相关推荐
【Oracle模拟高考录取系统设计】是一个综合性的数据库应用项目,旨在帮助学习者理解和掌握Oracle数据库在实际场景中的应用。此系统模拟了高等院校招生录取过程,包括数据录入、投档算法和查询统计等功能,以帮助学生...
【Oracle死锁的分类及其模拟】这篇博客主要探讨了Oracle数据库中的死锁问题,包括死锁的基本概念、分类以及如何进行模拟。以下是该主题的详细解释: **死锁概述** 死锁是数据库系统中常见的问题,它发生在两个或多...
考试模拟复习,主要是oracle的一些基本知识习题和上机练习
2. **考试模式**:模拟真实考试环境,限制时间并在结束后给出分数,让考生体验到考试的压力,从而更好地准备正式考试。 3. **自定义模式**:考生可以根据个人需求选择题目数量和类型,进行个性化的学习和测试。 ...
Oracle OCP(Oracle Certified Professional)是Oracle公司针对其数据库产品推出的专业认证,旨在验证数据库管理员在Oracle技术领域的专业技能和知识。这个“Oracle OCP 考试模拟器”是为准备OCP认证考试的考生设计...
"ORACLE中科学计数法显示问题的解决" 在 Oracle 中,科学计数法显示问题是一个常见的问题,特别是在 PLSQL 中显示超长数字的时候,会出现科学计数法的显示格式。本文档将为解决这个问题提供解决方法。 在 Oracle ...
模拟数据 oracle数据库,主要随机产生姓名,省份证,国际,住址等
oracle OCA OCP 认证 007考试 模拟软件!很准
Oracle 042和043考试是Oracle公司为评估和认证数据库专业人员技能而设计的两个重要认证考试。这两个考试分别对应Oracle Database 11g Administrator Certified Professional(OCP)认证过程的不同部分,旨在检验考生...
Oracle OCP(Oracle Certified Professional)认证是Oracle公司提供的专业数据库管理员资格证书,旨在验证个人在Oracle数据库管理领域的技能和知识。043通常指的是Oracle Certified Professional, Oracle Database ...
Oracle 1z0-051考试,OCA认证的第一阶段考试模拟题库。这个考试比较简单,而且可以无监考考试,大家可以参考练习
JavaGUI+Oracle实现的本地模拟学生成绩管理系统源码+数据库.zip适合新手入门,代码完整,下载可用。 JavaGUI+Oracle实现的本地模拟学生成绩管理系统源码+数据库.zip适合新手入门,代码完整,下载可用。JavaGUI+...
oracle根据生日自动求年龄的函数源代码,无须创建任何其他表
### 如何让Oracle表及字段显示为区分大小写 #### Oracle内部表存储原理与区分大小写的实现 在深入了解如何让Oracle表及字段显示为区分大小写之前,我们需要先理解Oracle内部是如何存储表和字段的。Oracle数据库...
通过“Oracle内测(B卷).doc”和“Oracle内测(A卷).doc”这样的文档,你可能会遇到更具体的问题,如编写PL/SQL代码片段来解决实际问题,或者根据已知条件优化SQL查询。而“Oracle笔试题.doc”和“Oracle Basic Test....
《VS2005+Oracle 10g实现的模拟医院预约挂号系统详解》 在IT行业中,开发高效、实用的管理系统是提升服务质量的关键。本文将深入探讨如何使用Visual Studio 2005(VS2005)作为开发工具,结合Oracle 10g数据库,...
### Oracle DBA基础考试模拟题知识点解析 #### 题目1: 权限问题 - **题目描述**: 如果你需要截去(删除)其他用户的表,你需要什么权限? - **选项解析**: - A.`DELETE ANY TABLE`: 此权限允许用户删除任何表的...
7. **录取名单.sql**:这个文件可能是用于生成或更新“录取名单”的过程,可能涉及根据设定的录取规则(如分数线、名额等)筛选和排序考生。 8. **视图.sql**:视图是基于一个或多个表的虚拟表,可能包含了各种查询...
Oracle 数据库开发培训中根据某一列的值修改另一列的值 Oracle 数据库是一种关系型数据库管理系统,广泛应用于企业级应用程序中。在 Oracle 数据库中,我们可以使用 update 语句来修改某一列的值根据另一列的值。...