Oracle数据库应用教程课件第7章.pptx

  1. 1、本文档共80页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 过程、函数和程序包 ; 7.1 子 程 序   以前我们写的PL/SQL语句程序都是瞬时的,都没有命名。其缺点是:在每次执行的时候都要被编译,并且不能被存储在数据库中,其他PL/SQL块也无法调用它们。现在我们把命名的PL/SQL块叫做子程序,它们存储在数据库中,可以为它们指定参数,可以在数据库客户端和应用程序中调用。命名的PL/SQL程序包括存储过程和函数。程序包是存储过程和函数的集合。   子程序结构与PL/SQL匿名块的相同点在于都由声明、执行、异常三大部分构成,不同之处??于,PL/SQL匿名块的声明可选,而子程序的声明则是必需的。 ;;7.1.1 过程   1.过程的创建和执行   过程可使用create procedure语句创建,语法如下:   create or replace procedure [方案名.]存储过程名   ???????? [parameter list]   ?????????????? {Is|as}   ?????????????????????? [local_declarations];   ?????????????? Begin   ?????????????????????? executable statements    [exception]    [Exception_handlers]   ???????????? ?? End [procedure_name]; ;  保留字Is前面的过程定义称为过程头。?过程头包括过程名和具有数据类型的参数列表。过程体包括声明部分、执行部分和异常处理部分。过程体从保留字Is之后开始。其中,声明部分和异常处理部分是可选的;?执行部分至少包含一条语句。这里的Is|as就相当于declare声明部分,除了拥有前面的一个过程声明语句外,其他和以前的匿名PL/SQL块一样。其中,replace表示在创建存储过程中,如果已经存在同名的存储过程,则重新创建;如果没有此关键词,则当数据库中有同名的过程时会报错“ORA-00955号错误:名称已被现有对象占用”。必须将同名的过程删除后才能创建。 ;  1) 创建不带参数的过程。   【例7.1】 创建一个过程multiplication,用来实现九九乘法表。   SQL create or replace procedure multiplication    2 as    3 i integer;    4 j integer;    5 begin    6 dbms_output.put_line(print multiplication );    7 for i in 1..9 loop    8 for j in 1..9 loop    9 if i=j then ;   10 dbms_output.put(to_char(j)||*||    11 to_char(i)||=||to_char(i*j)|| );    12 end if;    13 end loop;    14 dbms_output.put_line();    15 end loop;    16 end;    17 /   过程已创建。   出现编译错误的时候可以用show error或者desc user_errors来调试。 ;  2) 执行过程   创建过程的时候并不会执行过程,必须在这之后调用过程来执行。执行过程的方法有两种:一种是在SQL提示符下,使用execute语句来执行过程;另一种是在匿名块中调用。   execute执行过程的语法如下:   execute procedure_name (parameters_list); ;  【例7.2】 执行multiplication过程。   SQL set serverout on --将SQL*Plus的输出打开   SQL execute multiplication --执行过程multiplication用execute命令。   print multiplication   1*1=1   1*2=2 2*2=4   1*3=3 2*3=6 3*3=9   1*4=4 2*4=8 3*4=12 4*4=16   1*5=5 2*5=10 3*5=15 4*5=20 5*5=25   1*6=6 2*6=12 3

文档评论(0)

文单招、专升本试卷定制 + 关注
官方认证
服务提供商

专注于研究生产单招、专升本试卷,可定制

版权声明书
用户编号:8005017062000015
认证主体莲池区远卓互联网技术工作室
IP属地河北
统一社会信用代码/组织机构代码
92130606MA0G1JGM00

1亿VIP精品文档

相关文档