付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、湖南科技学院计算机与通信工程系实 验 报 告实验项目使用游标、存储过程和触发器课程名称Oracle数据库成 绩时 间2012年12月 日 第 周 第 - 节地 点E305姓 名李敏华学 号201008003240班 级软件1002班一、实验要求在Oracle 10g中综合运用PL/SQL中各种程序控制结构、异常处理语句以及DML语句序编写实现游标、存储过程和触发器。二、实验目的(1) 了解游标的概念和工作原理。(2) 了解存储过程的分类和使用方法。(3) 了解触发器的概念。(4) 学习编写和执行自定义过程。(5) 学习创建和使用触发器。三、实验环境² 硬件设备:PC机一台²
2、 操作系统:Windows XP² 应用工具:Oracle 10g四、实验内容及结果(1) 创建游标mycur,从表employees中读取1号部门的员工姓名,职务。并输出“员工姓名:XXX,职务:XXX。”程序代码如下:SET ServerOutput ON; DECLARE CURSOR MyCur IS SELECT emp_id, emp_Name,title FROM LMH_40.employeeswhere emp_id=1;BEGIN FOR var_emptRecord IN MyCur LOOP dbms_output.put_line('员工编号:
3、9; | var_emptRecord.emp_Id |', 员工姓名:' | var_emptRecord.emp_Name|var_emptRecord.title|',职务'); END LOOP;END; 执行结果如下:1 / 5(2) 创建存储过程GetGrade,查询指定员工的工资,使用CASE语句输出其工资等级。工资小于等于3000,等级为“低”;工资大于3000,小于5000,等级为”中”;工资大于等于5000,等级为高。并执行该存储过程。创建存储过程代码如下: create or replace procedure LMH_40,getgrad
4、e(v_depid im munber)asv_wage LMH_40.employees.wage%type;v_grade varchar2(5);beginselect wage into v_wagefrom LMH_40.employeeswhere emp_id=v_depid;v_grade:=casewhen v_wage<=3000 then '低'when v_wage>=3000 and v_wage<5000 then '中'when v_wage>=5000 then '高'end;dbms_ou
5、tput,put_line('该员工工资等级为'|v_grade);end;执行存储过程代码如下:execute LMH_40.getgrade(3)执行结果如下:(3) 创建触发器MyTrigger,它的作用是当dhb.Departments中Dep_id列的值发生变化时,自动更新表Employees中的Dep_id列的值,从而保证数据完整性。程序代码如下:CREATE OR REPLACE TRIGGER LMH_40.MyTriggerAFTER UPDATE ON LMH_40.DepartmentsFOR EACH ROWBEGIN UPDATE LMH_40.Emp
6、loyees SET Dep_id = :new.Dep_id WHERE Dep_id = :old.Dep_id;END;验证触发器代码如下:UPDATE LMH_40.Departments SET Dep_id=200 WHERE Dep_id=1;Commit;SELECT Emp_name, Dep_id FROM LMH_40.Employees;执行结果如下:五、实验总结通过这次上机实验,我有以下收获:通过本次试验学习了对触发器,游标的创建和使用以及创建过程。但是还上机操作过程中还存在以下几个方面的不足:对这一部分的知识知之甚少,以后需对这部分知识加强学习和上机操作。六、教师评
7、语教师签字: 年 月 日 参考程序:典型游标FOR循环的语法说明如下:FOR <记录名> IN <游标名> LOOP 语句1; 语句2; 语句n;END LOOP; -结束程序体【例】/* 打开显示模式 */SET ServerOutput ON; DECLARE CURSOR MyCur IS -定义游标 SELECT Dep_id, Dep_Name FROM dhb.Departments;BEGIN -开始程序体 FOR var_DeptRecord IN MyCur LOOP /* 显示保存在记录变量var_DeptRecord中的数据 */ dbms_out
8、put.put_line('部门编号:' | var_DeptRecord.Dep_Id |', 部门名称:' | var_DeptRecord.Dep_Name); END LOOP;END; -结束程序体p CREATE PROCEDURE语句来创建过程:CREATE OR REPLACE PROCEDURE<过程名> <参数列表> IS | AS <局部变量声明> BEGIN <过程体>END <过程名> ;【例】创建示例过程SetDepName,此过程的功能是根据参数修改表Departments
9、中指定部门的部门名称:CREATE OR REPLACE PROCEDURE DHB.SetDepName( v_DepId IN NUMBER, v_DepName IN VARCHAR2)ASBEGIN UPDATE DHB.Departments SET Dep_name = v_DepName WHERE Dep_Id = v_DepId;END;/执行存储过程:Execute DHB.SetDepName(1,'人事部')p CREATE TRIGGER语句来创建触发器:CREATE OR REPLACE TRIGGER <触发器名> BEFORE | A
10、FTER INSERT | DELETE | UPDATE OF column , column OR INSERT | DELETE | UPDATE OF column , column . ON <表名>|<视图名> FOR EACH ROW WHEN <条件表达式> <PL/SQL程序体>|call procedure_name例:创建触发器MyTrigger,它的作用是当dhb.Departments中Dep_id列的值发生变化时,自动更新表Employees中的Dep_id列的值,从而保证数据完整性。CREATE OR REPLACE TRIGGER DHB.MyTriggerAFTER UPDATE ON DHB.DepartmentsFOR EACH ROWBEGIN UPDATE DHB.Employees SET De
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淮河流域疟疾监测指标筛选与预测方法的探索与实践
- 淫羊藿素与HIV gp41融合多肽:对T细胞亚群影响的深入剖析
- 淄博周村雨污分流改造工程成本管理:问题剖析与优化策略
- 液滴撞击热壁面蒸发换热的数值模拟:模型构建与特性分析
- 涡轮叶片温度与位移检测技术:原理、应用与创新发展
- 消银解毒饮对银屑病血热证外周血淋巴细胞的调控机制探究
- 2026年安全主管安全合同二篇
- 妊娠期营养与心理状态交互作用
- 2026丹东市中考地理知识点总结训练含答案
- 妊娠期糖尿病酮症酸中毒的妊娠期药物过敏处理
- 2026年山东济南市高三二模高考政治试卷试题(含答案详解)
- 老旧小区改造电线私拉乱接重难点及规整对策
- 2026年北京市西城区高三一模历史试卷(含答案)
- 2026年全国《职业病防治法》宣传周:“守护职业健康共享幸福人生”
- 电力监控应急预案(3篇)
- 门店会员绩效考核制度
- 成人高考高起专英语复习资料
- 湖北省宜昌市2026届高三下4月考数学试题含解析
- 财务部门工作流程手册
- T∕CAMDI 165-2025 液相色谱用于临床维生素A、维生素E、25-羟基维生素D2 D3检测通 用技术要求
- 复旦大学肖巍马克思主义与社会科学方法论
评论
0/150
提交评论