- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九讲 存储过程和触发器 软件教研室 第九讲 存储过程和触发器 9.1存储过程 9.2创建存储过程 8.3创建带参数的存储过程 8.4触发器 8.5管理触发器 作业 9.1存储过程 复习:匿名程序块、命名程序块 过程和触发器都是PL/SQL语言中的概念,它们都是用户利用PL/SQL语言所提供的结构化编程语言的思想,自己编写、命名的程序块。 使用过程可以实现过程的抽象和数据的隐藏。用户只需要知道过程的名称、参数、返回值等外部特征,就可以使用参数调用过程,最后利用返回数据即可。 9.1存储过程 9.1存储过程(procedure) 概念:在Oracle中,可以在数据库中定义子程序,这种程序块称为存储过程。它存放在数据字典中,可以在不同用户和应用程序之间共享,并可实现程序的优化和重用。 作用: (1)过程在服务器端运行,执行速度快。 (2)过程执行一次后代码就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译代码执行,提高了系统性能。 9.1存储过程 (3)确保数据库的安全。可以不授权用户直接访问应用程序中的一些表,而是授权用户访问这些表的过程。非表的授权用户除非通过过程,否则不能访问这些表。 (4)自动完成需要预先执行的任务。过程可以在系统启动时自动执行,而不必在系统启动后再进行手工操作,大大方便了用户的使用,可以自动完成一些需要预先执行的任务。 9.2创建存储过程 9.2创建存储过程 用户存储过程只能定义在当前数据库中,可以使用SQL命令或OEM创建存储过程。 在用户的定义中不能使用下列对象创建语句: CREATE VIEW CREATE DEFAULT CREATE RULE CREATE PROCEDURE CREATE TRIGGER 9.2创建存储过程 9.2.1 创建和执行存储过程 1.创建存储过程 语法格式: CREATE [OR REPLACE] PROCEDURE [schema.]procedure_name /*定义过程名*/ [(parameter parameter_mode date_type,…n)] /*定义参数类型及属性*/ IS | AS BEGIN sql_statement END procedure_name 9.2创建存储过程 其中: procedure_name为要建立的过程名,必须符合标识符规则。关键字REPLACE表示在创建过程时,如果已存在同名的过程,则重新创建。如果使用CREATE关键字,则需将原有的过程删除后才能创建。 schema指定过程属于的用户方案。 parameter为过程的参数。参数名必须符合标识符规则,创建过程时,可以声明一个户多个参数,执行过程时应提供相对应的参数。 parameter_mode表明参数的类型。过程参数和函数参数一样,也有3种类型:分别为IN、OUT和IN OUT,当指定参数数据类型时,不能指定其长度。 sql_statement代表过程体包含的PL/SQL语句。 9.2创建存储过程 【例9.1】创建存储过程“print_current_time”,用于打印当前系统的时间,代码如下: create procedure print_current_time as curtime varchar2(20); begin select to_char(sysdate,yyyy/mm/dd hh24:mi:ss) into curtime from dual; dbms_output.put_line(当前时间是:||curtime); end print_current_time ; 9.2创建存储过程 2.执行存储过程 创建过程之后即可执行过程。用户既可以从匿名PL/SQL程序块中直接调用,也可以在SQL*Plus中使用execute()函数来执行。 语法格式: EXEC[UTE] procedure_name[(parameter, …n)] 9.2创建存储过程 【例9.2】使用exec函数执行,如图9.1所示 9.2创建存储过程 【例9.3】使用匿名PL/SQL程序块执行过程“print_current_time”,代码如下: Set serverout on begin Print_current_time; End; 9.2创建存储过程 9.2.2 使用OEM创建存储过程 9.3 创建带参数的存储过程 9.3 创建带参数的存储过程 Oracle中还可以创建带参数的存储过程,扩展存储过程的功能。存储过程的参数有3种类型:分别为IN、OUT和IN OUT。 IN:表示参数是输入给过程的。 OUT:表示参数在过程中将
原创力文档


文档评论(0)