第7章 存储过程、触发器和程序包.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 存储过程、触发器和程序包.ppt

* 第7章 存储过程、触发器和程序包 在很多时候,都需要保存PL/SQL程序块,以便随后可以重新使用。这也意味着,程序块需要一个名称,这样需才可以调用或者引用它。命名的PL/SQL程序块可被独立编译并存储在数据库中,任何与数据库相连接的应用程序都可以访问这些存储的PL/SQL程序块。Oracle提供了四种类型的可存储的程序:过程、函数、触发器和程序包。 * 本章知识要点: 创建Oracle存储过程 调用存储过程 理解存储过程中各种形式的参数 为过程添加局部变量和子过程 PL/SQL程序中的函数应用 触发器的应用 语句级触发器的特点 行级触发器的特点 INSTEAD OF触发器的特点 系统级触发器的特点 用户事件触发器的特点 程序包规范和主体 程序包中的私有过程和公有过程 程序包中的初始化代码 理解程序包中函数或过程的重载 了解Oracle提供了常见系统程序句 * 7.1 存储过程 存储过程是一种命名的PL/SQL程序块,它可以接受零个或多个参数作为输入、输出,或者既作输入又作输出的参数。过程被存储在数据库中,并且存储过程没有返回值,存储过程不能由SQL语句直接使用,只能通过EXECUT命令或PL/SQL程序块内部调用。由于存储过程是已经编译好的代码,所以在调用的时候不必再次进行编译,从而提高了程序的运行效率。 7.1.1 创建存储过程 创建存储过程之前,先来看一下创建存储过程的语法结构。定义存储过程的语法如下: * create procedure procedure_name [(parameter[,parameter,...])] is [local declarations] begin execute statements [exception exception handlers ] end [procedure _name] 7.1.3 默认值 存储过程的参数也可以有默认值,这样当调用该过程时,如果未向参数传入值,则该参数将使用定义的默认值。例如,下面修改了ADD_EMPLOYEE存储过程,为其中的参数提供了默认值: * SQL create or replace procedure add_employee( 2 id_param in number, 3 name_param in varchar2, 4 job_param in varchar2 default SALESMAN, 5 hire_param in date default sysdate, 6 salary_param in number default 1000) is 7 begin 8 insert into scott.emp(empno,ename,job,hiredate,sal) 9 values(id_param,name_param,job_param,hire_param,salary_param); 10 end add_employee; 11 / 过程已创建。 * 7.1.4 过程中的事务处理 当在SQL*Plus中进行操作时,用户可以使用COMMIT语句将在事务中的所有操作“保存”到数据库中。如果用户需要撤销所有的操作,则可以使用ROLLBACK语句回退事务中未提交的操作,使数据库返回到事务处理开始前的状态。在PL/SQL过程中,不仅可以包括插入和更新这类的DML操作,还可以包括事务处理语句COMMIT和ROLLBACK。 * 7.2 函数 函数与过程非常类似,它也是一种存储在数据库中的命名程序块,并且函数也可以接受零个或多个输入参数。函数与过程之间的主要区别在于,函数必须有返回值,并且可以作为一个表达式的一部分,函数不能作为一个完整的语句使用。函数返回值的数据类型在创建函数时定义,定义函数的基本语法如下: create [or replace] function function_name (parameter [,parameter]) returne data_type is [local declarations] begin execute statements [exception exception handlers] end [function_name] 7.3 触发器 触发器是关系数据库系统提供的一项技术,触发器类似过程和函数,它们都包括声明部分,执行逻辑处理部分和异常处理部分,并且都被存储在数据库中。 * 7.3.1 触发器的概述 触发器是与一

文档评论(0)

资料 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档