第6章 存储过程和触发器.ppt
《第6章 存储过程和触发器.ppt》由会员分享,可在线阅读,更多相关《第6章 存储过程和触发器.ppt(23页珍藏版)》请在麦多课文档分享上搜索。
1、2018年10月12日,第1页,第6章 存储过程和触发器,教学目标: 1.掌握存储过程的创建与使用 2.掌握触发器的创建与使用,2018年10月12日,第2页,6.1 存储过程在Oracle中,可以在数据库中定义子程序,这种程序块称为存储过程 (procedure)。可以在不同用户和应用程序之间共享,并可实现程序的优化和重用。使用存储过程的优点是: (1) 过程在服务器端运行,执行速度快。 (2) 过程执行一次后代码就驻留在高速缓冲存储器,在以后的操作中,只需从高 速缓冲存储器中调用已编译代码执行,提高了系统性能。 (3) 确保数据库的安全。可以不授权用户直接访问应用程序中的一些表,而是授 权
2、用户执行访问这些表的过程。非表的授权用户除非通过过程,否则就不能访问 这些表。 (4) 自动完成需要预先执行的任务。过程可以在系统启动时自动执行,而不必在 系统启动后再进行手工操作,大大方便了用户的使用,可以自动完成一些需要预 先执行的任务。,2018年10月12日,第3页,用户存储过程只能定义在当前数据库中,可以使用SQL命令 语句或OEM创建存 6.1.1 存储过程的创建和执行 1. SQL命令创建存储过程 语法格式:CREATE OR REPLACE PROCEDURE schema.procedure_name /*定义过程名*/ (parameter parameter_mode d
3、ate_type , n) /*定义参数类型及属性*/IS | ASBEGINsql_statement /*PL/SQL过程体,要执行的操作*/END procedure_name,2018年10月12日,第4页,Parameter_mode是参数的类型,过程参数和函数参数一样,也有3种类型,分别为IN、OUT和IN OUT。 IN:表示参数是输入给过程的; OUT:表示参数在过程中将被赋值,可以传给过程体的外部; IN OUT:表示该类型的参数既可以向过程体传值,也可以在过程体中赋值。,2018年10月12日,第5页,2. 调用存储过程 直接输入存储过程的名字就可以执行一个已定义 的存储过
4、程。 语法格式:EXECUTE procedure_name(parameter,n) 其中,procedure_name为要调用的存储过程的 名字,parameter为参数值,2018年10月12日,第6页,【例6.1】计算指定系总学分大于40的人数。CREATE OR REPLACE PROCEDURE count_grade( zym in char,person_num out number )ASBEGINSELECT COUNT(ZXF)INTO person_numFROM XSWHERE ZYM=zym AND ZXF40;END count_grade;,2018年10月12
5、日,第7页,在调用过程count_grade时,需要先定义OUT类型参数,调用如下:DECLARE man_num NUMBER;BEGINcount_grade(计算机,man_num); dbms_output.put_line(总人数为: | TO_CHAR(man_num);END;,2018年10月12日,第8页,【例6.4】统计表XS中男女同学的人数,存储过程使用了一个输入参数和一个输出参数。,2018年10月12日,第9页,3. 利用OEM创建过程 (1) 在OEM界面中,如图6.1所示,选择“过程”,单击鼠标左键,进入“过程搜索”界面,2018年10月12日,第10页,6.1.
6、2存储过程的编辑修改同创建,2018年10月12日,第11页,6.1.3 存储过程的删除,当某个过程不再需要时,应将其从内存中删除,以释放它占用的内 存资源。 语法格式:DROP PROCEDURE schema. procedure_name; 其中,schema是包含过程的用户;procedure_name是将要删除的存储过程名称。 【例6.7】删除XSCJ数据库中的count_num1存储过程。DROP PROCEDURE count_num1; 也可在OEM中选择要删除的存储过程,在如图6.2所示的界面,搜索并选择要删 除的存储过程,单击“删除”,出现确认删除界面,单击“是”即可删除该
7、存储过程。,2018年10月12日,第12页,6.2 触发器,触发器(trigger)是一些过程,与表关系密切,用于保护表中的数据 触发器的类型有三种: (1) DML触发器。由INSERT、UPDATE和DELETE语句所触发的触发器。DML触发器可以为这些事件创建BEFORE触发器(事前触发器)和AFTER触发器(事后触发器)。DML触发器还可以根据是对于每一个SQL语句触发一次还是对每行数据的处理都分别触发一次而创建对应的语句级触发器和行级触发器。,2018年10月12日,第13页,(2)替代触发器。由于在Oracle中不能直接对有两个以上的表建立的视图进行操作,所以给出了替代触发器。它
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 存储 过程 触发器 PPT
