实验五PLSQL高级编程.doc

实验五PLSQL高级编程.doc

ID:61455334

大小:23.50 KB

页数:5页

时间:2021-02-01

实验五PLSQL高级编程.doc_第1页
实验五PLSQL高级编程.doc_第2页
实验五PLSQL高级编程.doc_第3页
实验五PLSQL高级编程.doc_第4页
实验五PLSQL高级编程.doc_第5页
资源描述:

《实验五PLSQL高级编程.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验4PL/SQL高级编程开发语言及实现平台或实验环境:Oracle10g实践目的(1)掌握存储过程、存储函数、包、触发器高级数据库对象的基本作用。(2)掌握存储过程、存储函数、包、触发器的建立、修改、查看、删除操作。实验要求(1)记录执行命令和操作过程中遇到的问题及解决方法,注意从原理上解释原因。(2)掌握存储过程、存储函数、包、触发器的命令。实验内容1.创建存储过程(1)将下列的未命名的PL/SQL,转换成存储过程,存储过程名自己设定,注意比较未命名的PL/SQL与命名的PL/SQL的差别,如没有wherecurrentof是什么情况。declarecursoremp_cu

2、rsorisselect*fromempwheredeptno=10forupdate;beginforemp_recordinemp_cursorloopdbms_output.put_line(emp_record.sal);updateempsetsal=sal*1.1wherecurrentofemp_cursor;endloop;end;/(2)(3)任选一个(2)创建存储过程“dept_count_pro”,通过传入参数传入部门号deptno(如10),显示员工表“emp”中不同部门的员工人数,并执行该存储过程。(3)创建存储过程“num_pro”,通过传入参数传入

3、3个数,完成3个数的从小到大排序,通过3个传出参数保存排序后的3个数,并执行该存储过程,显示排序结果。2.查看存储过程(1)利用SQL*Plus或iSQL*Plus从user_source数据字典中查看存储过程。3.删除存储过程(1)利用SQL*Plus或iSQL*Plus删除某个存储过程。4.创建函数(1)创建存储函数“emp_fun”,通过传入参数传入员工的编号,根据传入的员工编号,检查该员工是否存在。如果存在,则返回员工的姓名,否则返回“此员工不存在“,并执行该存储函数。(2)创建存储函数“dept_count_fun”,利用传入参数传入部门号(如10),返回员工表“em

4、p”中不同部门的员工人数,并执行该存储函数,注意比较与存储过程“dept_count_pro”的差别。5.查看存储函数(1)从user_source数据字典中查看存储函数。6.删除存储函数(1)删除存储函数“dept_count_fun”。7.创建触发器(1)新建一个部门平均工资表,编写触发器实现当雇员表中新增、删除数据或者修改工资时,重新统计各部门平均工资。createtableavg_sal(deptno,avg_s)asselectdeptno,avg(sal)fromempgroupbydeptno;参考代码:createorreplacetriggerdml_aaft

5、erinsertordeleteorupdateonabeginifinsertingtheninsertintomylogvalues(user,sysdate,'I');elsifdeletingtheninsertintomylogvalues(user,sysdate,'D');elseinsertintomylogvalues(user,sysdate,'U');endif;end;(2)创建一个替代触发器,通过更新视图来更新基本表(如向通过向视图插入一条记录,来实现对部门表和员工表插入数据的操作。createviewemp_dept(empno,ename,dept

6、no,dname)asselectempno,ename,dept.deptno,dnamefromemp,deptwheredept.deptno=emp.deptno;参考代码:createorreplacetriggertr_v_e_dinsteadofinsertonemp_deptforeachrowbegin触发体;end;/(3)(4)选做一个createorreplacetriggerdel_deptidafterdeleteondeptforeachrowbegindeletefromempwheredeptno=:old.deptno;enddel_dept

7、id;/(3)利用SQL*Plus或iSQL*Plus创建行级触发器“update_row_tri”,当dept表的某一“deptno”值更改时,emp表中对应的“deptno”值也跟着进行相应的更改。更改“dept”表的某一“deptno”值,查看“emp”表中对应的“deptno”值是否发生变化。(4)利用SQL*Plus或iSQL*Plus创建语句级触发器“delete_tri”,当删除dept表中某个部门编号时,将就emp表中该员工的所有信息一并删除。删除“dept”表中某个员工的信

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。