第04章过程函数和程序包.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第04章过程函数和程序包

第四章过程、函数和程序包 (教材第8章) 子程序 子程序: PL/SQL的过程和函数统称为子程序 匿名块: 以DECLARE或BEGIN开始,每次提交都被编译。匿名块不在数据库中存储并且不能直接从其他PL/SQL块中调用。 命名块:除匿名块之外的其他块。包括过程,函数,包和触发器。可以在数据库中存储并在适当的时候运行。 PL/SQL 程序块、过程、函数和数据包中声明 子程序的优点 具有可扩展性 可以自定义 PL/SQL 语言以满足应用程序的需要 提高可复用性和可维护性 子程序只要有效,就完全可以用于任何数目的应用程序中 简化了维护/优化过程,因为如果定义更改只有子程序受到影响 创建子程序 创建过程(语法如下) 创建过程的注意事项 当创建一个已存在的过程时,指明REPLACE选项。 关键字AS和IS均可,它们本身没有差别。 PL/SQL块可以从BEGIN开始,也可以从局部变量说明开始。 PL/SQL块不能以DECLARE开始。 用END或END 加上过程名作为PL/SQL块的结束标志。 过程的形式参数的三种模式 过程的形式参数的三种模式 例:过程的形式参数的用法 create or replace procedure modetest( p_inparameter in number, p_outparmeter out number, p_inoutparameter in out number) is v_localvariable number; begin v_localvariable:=p_inparameter; (p_inparameter:=7; 错误) p_outparameter:=7; (v_localvariable:=p_outparameter; 错误) v_localvariable:=p_inoutparameter; p_inoutparameter:=7; end; 在形参和实参之间传递数值 文字或常数作为实参 因为复制功能的使用,对应于参数IN OUT或OUT的实参必须是变量,而不能是常数或表达式。也就是说,程序必须提供返回的变量的存储位置。 编译检查 PL/SQL编译器在创建过程时将对合法的赋值进行检查。 从OUT参数读取数据 对形参的约束 调用过程时,实参的值将被传入该过程,这些实参在该过程内部以引用的方式使用形参。 同时,作为参数传递机制一部分,对变量的约束也传递给该过程。 在过程的声明中,强制指定参数CHAR和VARCHAR2的长度,以及指定NUMBER参数的精度或小数点后位数都是非法的,这是因为这些约束可以从实参中获得。 创建过程 过程的结构应具有下面所示的特征: 过程的例子-无参数的过程 例题1: 创建一个无参数过程,记录用户名和当前日期 CREATE OR REPLACE PROCEDURE log_execution IS BEGIN INSERT INTO log_table(user_id,log_date) VALUES(user,sysdate); END; 过程的例子-带参数的过程 例题2: 利用过程进行查询处理,获取一个雇员的姓名、工资、奖金信息。 过程的运行、删除命令 运行过程的命令格式: SQL EXECUTE 过程名[(参数. . .)]; 过程的例子 例题2执行结果: 过程的例子-有用户自定义的异常情况的过程 例题3 在过程中处理异常情况。删除指定雇员,如果没有该雇员,就触发异常处理。 过程的例子 例题3执行结果: 过程的例子-用户自定义异常错误信息的过程 在处理异常情况中,利用RAISE_APPLICATION_ERROR过程,可以返回给调用者一个特定的错误信息和出错代码。 第四章过程、函数和程序包 (教材第8章) 过程与函数的比较 函数与过程基本类似,只不过调用时函数要用表达式方式,而过程只需调用过程名。 创建函数的语法 CREATE [OR REPLACE] FUNCTION 函数名 [(参数名 [ IN ] 数据类型. . .)] RETURN 数据类型 IS | AS [ 说明部分] BEGIN 语句序列

文档评论(0)

youshen + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档