- 1、本文档共79页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 过程、函数和程序包 7.1 子 程 序 以前我们写的PL/SQL语句程序都是瞬时的,都没有命名。其缺点是:在每次执行的时候都要被编译,并且不能被存储在数据库中,其他PL/SQL块也无法调用它们。现在我们把命名的PL/SQL块叫做子程序,它们存储在数据库中,可以为它们指定参数,可以在数据库客户端和应用程序中调用。命名的PL/SQL程序包括存储过程和函数。程序包是存储过程和函数的集合。 子程序结构与PL/SQL匿名块的相同点在于都由声明、执行、异常三大部分构成,不同之处在于,PL/SQL匿名块的声明可选,而子程序的声明则是必需的。 子程序的优点如下: (1) 模块化:通过子程序可以将程序分解为可管理的、明确的逻辑模块。 (2) 可重用性:子程序在创建并执行后,就可以在任何应用程序中使用。 (3) 可维护性:子程序可以简化维护操作。 (4) 安全性:用户可以设置权限,保护子程序中的数据,只能让用户提供的过程和函数访问数据。这不仅可以让数据更加安全,同时可保证正确性。 子程序有两种类型:过程和函数。其中,过程用于执行某项操作;函数用于执行某项操作并返回值。 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*Plu
您可能关注的文档
- Oracle9i关系数据库实用教程(第二版)蔡立军电子教案及教学大纲 10.ppt
- Oracle9i关系数据库实用教程(第二版)蔡立军电子教案及教学大纲 11.ppt
- Oracle9i关系数据库实用教程(第二版)蔡立军电子教案及教学大纲 12.ppt
- Oracle9i关系数据库实用教程(第二版)蔡立军电子教案及教学大纲 教学大纲.doc
- Oracle9i关系数据库实用教程电子教案 第八章 Oracle9i常用工具.ppt
- Oracle9i关系数据库实用教程电子教案 第二章 Oracle体系结构.ppt
- Oracle9i关系数据库实用教程电子教案 第九章 Oracle的性能优化.ppt
- Oracle9i关系数据库实用教程电子教案 第六章 Oracle的安全管理.ppt
- Oracle9i关系数据库实用教程电子教案 第七章 数据库的备份与恢复.ppt
- Oracle9i关系数据库实用教程电子教案 第三章 SQL语言基础.ppt
- 半导体材料性能提升技术突破与应用案例分析报告.docx
- 半导体设备国产化政策支持下的关键技术突破与应用前景报告.docx
- 剧本杀市场2025年区域扩张策略研究报告.docx
- 剧本杀行业2025人才培训体系构建中的市场需求与供给分析.docx
- 剧本杀行业2025年人才培训行业人才培养模式创新与探索.docx
- 剧本杀行业2025年内容创作人才需求报告.docx
- 剧本杀行业2025年区域市场区域剧本市场消费者满意度与市场竞争力研究报告.docx
- 剧本杀市场2025年区域竞争态势下的区域合作策略分析报告.docx
- 剧本杀行业2025人才培训与行业人才培养模式创新.docx
- 剧本杀行业剧本创作人才心理素质培养报告.docx
最近下载
- T_HNTI 030—2020_茶树种质资源考察收集技术规范.pdf VIP
- 报关原理与实务(第二版)(第5章)1进出口货物报关单填制.ppt VIP
- 2025年滨州市中考英语试题卷(含答案逐题解析).docx
- 基于能力培养的人工智能课程体系设计.docx
- Q/GDW1827-2013三相智能电能表技术规范.pdf VIP
- 国家中医药管理局发布的406种中医优势病种诊疗方案和临床路径目录.pptx VIP
- 华能国际电力股份有限公司本质安全体系管理手册.doc VIP
- 教育行业AI大模型设计方案【231页WORD】.docx VIP
- 2024医保物价培训.pptx VIP
- 屋顶光伏发电建设项目实施方案.docx
文档评论(0)