1 / 13
文档名称:

Oracle数据库系统应用开发实用教程ch8实验报告.doc

格式:doc   大小:444KB   页数:13页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Oracle数据库系统应用开发实用教程ch8实验报告.doc

上传人:书生教育 2024/2/27 文件大小:444 KB

下载得到文件列表

Oracle数据库系统应用开发实用教程ch8实验报告.doc

相关文档

文档介绍

文档介绍:该【Oracle数据库系统应用开发实用教程ch8实验报告 】是由【书生教育】上传分享,文档一共【13】页,该文档可以免费在线阅读,需要了解更多关于【Oracle数据库系统应用开发实用教程ch8实验报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。广东科学技术职业学院计算机工程技术学院(软件学院)实验报告专业班级成绩评定______学号姓名(合作者____号____)教师署名实验题目储存过程、函数、程序包和触发器第周礼拜。。。。。。。。。。。。。。。。一、实验环境及方案WindowsServer2000sp1或更高版本;或WindowsServer2003的全部版本;或WindowsXP专业版;Oracle10g;环境及阅读器。二、:编写一个储存过程,要求依据用户输入的职工号(employee_id)查问EMPLOYEES表,返回职工的姓名、工作职位和薪资(first_name,last_name,job_title,salary)。并编写一个匿名块调用此过程。(使用HR用户的EMPLOYEES表、JOBS表,。以下同)(1)编写储存过程createorreplaceprocedurepro_emp(emp_idnumber)asvfnamevarchar2(20);vlnamevarchar2(20);vjobvarchar2(20);nsalnumber;,,,,vlname,vjob,nsalfromemployeese,jobsjwhereemployee_id==;('雇员的姓名是:'||vfname||''||vlname);('雇员的职位是:'||vjob);('雇员的薪资是:'||nsal);('雇员编号未找到!');endpro_emp;(2)调用履行储存过程execpro_emp(104);履行结果为雇员的姓名是:BruceErnst雇员的职位是:Programmer雇员的薪资是:6000练****要求依据用户输入的职工号(employee_id)查问EMPLOYEES表,返回职工的工作职位、工作年限、电话和Email。并编写一个匿名块调用此过程。创立一个过程,用来实现九九乘法表。:编写函数以部门号为参数,并计算该部门的均匀薪资。(1)编写函数createorreplacefunctionfun_avgsal(dept_idnumber)returnfloatassal_avgfloat(10);beginselectavg(salary)intosal_avgfromemployeeswheredepartment_id=dept_id;returnsal_avg;('部门号未找到!');end;(2)调用函数setserveroutputon;declaresal_avgfloat(10);beginsal_avg:=fun_avgsal(60);('该部门的均匀薪资为:'||sal_avg);end;履行结果为该部门的均匀薪资为:5760练****在上边题目的基础上,列出部门内比均匀薪资高的职工姓名、职位和薪资。①掌握程序包的编写规范②掌握履行程序包中过程和函数的方法。实训内容指导:编写一个程序包,此程序包有一个过程和一个函数,过程依据职员编号显示工作职位和薪资。函数依据职员编号返回职员的任职日期。并编写调用程序履行。(1)编写程序包规范createorreplacepackagepack_employeeisprocedurepro_job_sal(emp_idnumber);functionfun_date(emp_idnumber)returndate;endpack_employee;(2)编写程序包主体createorreplacepackagebodypack_employeeasprocedurepro_job_sal(emp_idnumber)isvjobvarchar2(20);nsalnumber(20);,,nsalfromemployeese,==emp_id;('该职员的工作为:'||vjob||'薪资为:'||nsal);('职员编号未找到!');endpro_job_sal;functionfun_date(emp_idnumber)returndateish_datedate;beginselecthire_dateintoh_datefromemployeeswhereemployee_id=emp_id;returnh_date;('职员编号未找到!');endfun_date;endpack_employee;(3)调用程序setserveroutputon;(105);履行结果为该职员的工作为:Programmer薪资为:4800declareh_datedate;beginh_date:=(105);('该职员的任职日期是:'||h_date);end;履行结果为该职员的任职日期是:25-6月-97练****编写一个程序包,此程序包有一个过程和一个函数。过程以职工的工作职位(jobs表job_title字段)为参数,显示同样职位中的职工人数。函数利用传入参数传入部门号,返回该部门中的职工人数。并编写调用程序履行。①掌握语句级触发器的原理。②语句级触发器的编写方法。③测试语句级触发器能否奏效。实训内容指导:创立语句级触发器,需要对scott用户的dept表长进行dml操作的用户进行安全检查,假如不是scott用户,不可以做增、删、改的动作。(1)成立触发器createorreplacetriggerbiud_deptbeforeinsertorupdateordeleteondeptbeginifusernotin('SCOTT')thenraise_application_error(-20001,'esstomodifythistable.');endif;end;(3)测试触发器即便sys,system用户也不可以改正dept表。练****创立语句级触发器,需要对HR用户的jobs表长进行dml操作的用户进行安全检查,假如不是HR用户,不可以做增、删、改的动作。①掌握行级触发器的原理。②行级触发器的编写方法。③测试行级触发器能否奏效。实训内容练****创立一行级触发器,为学生信息表的主键生成自增序列号。(学生信息表信息包含学号、姓名、籍贯等,此中学号的编码示例为‘01041107+两位序号’)。步骤提示:1)建学生信息表2)建序列3)成立触发器4)插入数据5)①掌握代替触发器的原理。②创立DDL触发器。③代替触发器的测试方法。实训内容指导:创立一个视图view_emp_dept,数据根源于emp表的字段empno,ename,job,,=。而后对视图view_emp_dept更新部门信息。比如:对视图进行更新操作,出现错误,请用代替触发器解决。步骤:(1)受权给SCOTT用户创立视图的权限,创立视图connsystem/manager1;grantcreateviewtoscott;connscott/tiger;createorreplaceviewview_emp_deptasselectempno,ename,job,,=;(2)对视图进行更新操作updateview_emp_deptsetdepno=50wheredepno=10;履行结果为updateview_emp_deptsetdepno=55wheredepno=10*第1行出现错误:ORA-02291:违犯完好拘束条件()-未找到父项重点字3)在视图上创立INSTEADOF触发器createorreplacetriggerdept_emp_updinsteadofupdateonview_emp_deptforeachrowdeclaretnumber;beginselectcount(*)tfromdeptwheredeptno=:;t=0thenbegininsertintodept(deptno)values(:,’新部门名称’);updateempsetdeptno=:=:;end;elseupdateempsetdeptno=:=:;endif;end;(4)从头对视图进行插入操作updateview_emp_deptsetdepno=50wheredepno=10;履行结果为已更新3行。练****请用代替触发器解决对视图view_emp_dept进行插入数据,其部门号为60。①掌握DDL触发器的原理。②创立DDL触发器。DDL触发器的测试方法。实训内容练****成立DDL触发器用于审计记录所删除的对象状况。(1)成立一日记表connscott/tiger;createtabledroped_objects(object_namevarchar2(30),object_typevarchar2(30),dropped_ondate);2)创立触发器(3)进行测试提示:先创立表、视图等对象而后将这些对象删除。查察日记记录。①掌握数据库级触发器的原理。②创立数据库级触发器。③数据库级触发器的测试方法。实训内容指导:创立数据库级触发器,记录数据库发生错误的信息。(1)创立下边的表来实现记录数据库发生错误的信息(比如在SCOTT用户下创立)connscott/tiger;createtableerror_log(timestampdate,usernamevarchar2(30),instancenumber,database_namevarchar2(50),error_stackvarchar2(2000)