/*定义过程参数*/
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;
/*定义graduateflag为字符型变量,根据结果放入“落选”或“录取”,然后写入数据表result*/
graduateflag varchar2(4);
/*定义游标graduatecursor,存放的是所有的graduate数据表中的记录*/
cursor graduatecursor is
select * from scott.graduate;
/*定义异常处理errormessage*/
errormessage exception;
/*开始执行*/
begin
/*打开游标*/
open graduatecursor;
/*如果游标没有数据,激活异常处理*/
if graduatecursor%notfound then
raise errormessage;
end if;
/*游标有数据,指针指向第一条记录,每执行fetch命令,就自动下移,循环执行到记录提取完毕为止*/
loop
fetch graduatecursor into graduaterecord;
/*计算总分*/
graduatetotalscore:=graduaterecord.yingyu+graduaterecord.zhengzhi+graduaterecord.zhuanye1+graduaterecord.zhuanye2+graduaterecord.zhuanye3;
/*判断单科和总分是否满足录取要求,若满足,graduateflag变量值为“录取”,否则为“落选”*/
if (graduaterecord.yingyu>=tempyingyu and
graduaterecord.zhengzhi>=tempzhengzhi and
graduaterecord.zhuanye1>=tempzhuanye1 and
graduaterecord.zhuanye2>=tempzhuanye2 and
graduaterecord.zhuanye3>=tempzhuanye3 and
graduatetotalscore>=temptotalscore) then
graduateflag:='录取';
else
graduateflag:='落选';
end if;
/*当游标数据提取完毕后,退出循环”*/
exit when graduatecursor%notfound;
/*向结果数据表result中插入处理后的数据*/
insert into scott.result(bh,xm,lb,zhengzhi,yingyu,zhuanye1,zhuanye2,zhuanye3,totalscore,flag) values(graduaterecord.bh,graduaterecord.xm,graduaterecord.lb,graduaterecord.zhengzhi,graduaterecord.yingyu,graduaterecord.zhuanye1,graduaterecord.zhuanye2,graduaterecord.zhuanye3,graduatetotalscore,graduateflag);
end loop;
/*关闭游标*/
close graduatecursor;
/*提交结果*/
commit;
/*异常处理,提示错误信息*/
exception
when errormessage then
dbms_output.put_line('无法打开数据表');
/*程序执行结束”*/
end;
Oracle 9i教程资源
需积分: 0 101 浏览量
更新于2009-08-10
收藏 9.15MB RAR 举报
Oracle 9i教程资源是针对Oracle数据库9i版本的一套学习资料,包含了SQL语句、图表和工具等关键内容,旨在帮助用户深入了解和掌握Oracle 9i的使用和管理。Oracle 9i是Oracle公司在2001年推出的一个重要数据库版本,它在功能和性能上都有显著提升,为当时的数据库管理和开发人员提供了强大支持。
让我们来看看SQL语句部分。SQL(Structured Query Language)是用于管理关系数据库的标准语言,Oracle 9i支持标准的SQL语法,如SELECT、INSERT、UPDATE、DELETE等基本操作,同时也提供了一些Oracle特有的SQL扩展,如PL/SQL(Procedural Language/SQL)和SQL*Plus命令。PL/SQL允许用户编写过程化的SQL代码,包括变量、流程控制结构和异常处理,是Oracle数据库中进行复杂业务逻辑处理的重要工具。SQL*Plus则是一个命令行工具,用于执行SQL查询、脚本和管理Oracle数据库。
在图表部分,可能涵盖了数据库设计的概念模型、逻辑模型和物理模型。概念模型通常使用ER图(实体关系图)来表示,它描述了业务领域的实体、关系以及属性;逻辑模型是数据库的实际布局,包括表、字段、键等元素;物理模型关注数据在磁盘上的存储方式,涉及索引、分区等优化策略。这些图表对于理解数据库的结构和优化非常重要。
工具部分可能包含Oracle企业管理器(Oracle Enterprise Manager,OEM)、SQL Developer、SQL*Plus等。Oracle企业管理器提供了一个图形界面,用于监控数据库性能、管理数据库实例、执行备份恢复等任务;SQL Developer则是一个集成开发环境,支持编写、调试和执行SQL语句,同时具有数据库对象管理、数据可视化等功能;SQL*Plus虽然是一个命令行工具,但也是日常数据库管理不可或缺的一部分。
Oracle 9i的特性还包括数据仓库优化、XML支持、互联网应用开发等。在数据仓库方面,9i引入了快速加载、并行查询和星型模式优化等技术,提高了分析查询的效率。XML支持则允许数据库存储和处理XML格式的数据,适应了Web服务和数据交换的需求。此外,9i还提供了JDBC和ODBC接口,方便Java和.NET等应用程序与Oracle数据库交互。
学习Oracle 9i教程资源,你需要掌握如何创建和管理数据库实例,理解表、视图、索引等数据库对象,熟练使用SQL进行数据查询和更新,了解PL/SQL编程,以及掌握基本的数据库性能优化技巧。通过实践,你可以进一步提高在Oracle数据库领域的专业能力。这个压缩包中的资源将是你学习旅程的重要辅助,帮助你在Oracle 9i的世界中游刃有余。
xiaocheng402
- 粉丝: 1
- 资源: 6
最新资源
- 每周质量安全排查报告.docx
- 排水报装接入申请表.docx
- 评估报告公示公众意见表.doc
- 评审、登记备案情况表.docx
- 墙板隐蔽前监理检查记录.docx
- 抢救室、输液室周带教计划表.docx
- 人防工程主体结构验收前监理人员检查记录表.docx
- 人防工程竣工验收前监理人员检查记录.docx
- 人防门框及临战封堵框常规数据检查表.docx
- 人防门扇常规数据检查表.docx
- 社区工作者岗位表.docx
- 涉及消防的建筑材料、构配件和设备的进场试验报告汇总表.docx
- 涉及消防的各分部分项工程消防查验结果表.docx
- 十级伤残鉴定标准表.docx
- 市标化优良工地检查自评表(施工、监理企业用表).docx
- 输液结束(拔针)流程表.docx