数据库技术及应用:第7章 Oracle存储过程和函数.ppt

数据库技术及应用:第7章 Oracle存储过程和函数.ppt

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

*Oracle存储过程和函数第七章预习检查存储过程如何定义函数如何定义本章目标掌握存储过程掌握函数子程序子程序是一个命名的PL/SQL块,可以带参数也可以不带参数,可以被调用,包含两种:存储过程和函数优点:模块化可重用性可维护性安全性存储过程为了执行一定的任务而组合在一起的SQL或者PL/SQL语句集创建--创建简单无参数存储过程createorreplaceprocedureaddStuWuCan 参数名参数类型in|out|inoutis|asbegin代码块异常处理end;调用存储过程命令行:setserveroutputon;execute|exec存储过程名plsql中begin存储过程名end;删除存储过程dropprocedure存储过程名 注意事项:存储过程参数不带取值范围,in表示传入,out表示输出类型可以使用任意Oracle中的合法类型。变量带取值范围,后面接分号在判断语句前最好先用count(*)函数判断是否存在该条操作记录用select?。。。into。。。给变量赋值在代码中抛异常用?raise+异常名不带参数的存储过程--创建简单无参数存储过程createorreplaceprocedureaddStuWuCanisbegininsertintogradevalues(seq_grade.nextval,无参数测试);end;/--调用执行/*setserveroutputon;execaddStuWuCan;*/--命令行调用方式和sqlserver相同beginaddStuWuCan;--直接调用end;带参数的存储过程--创建带输入参数存储过程createorreplaceprocedureaddstudaishurucanshu(snamevarchar2)isbegininsertintogradevalues(seq_grade.nextval,sname);end;declaresnamevarchar2(50):=sname1;beginaddstudaishurucanshu(sname);end;带默认值参数的存储过程--创建带输入参数存储过程---默认值createorreplaceprocedureaddstudaishurucanshumorenzhi(snamevarchar2default默认值)isbegininsertintogradevalues(seq_grade.nextval,sname);--使用参数不用加单引号end;beginaddstudaishurucanshumorenzhi();--不需要声明变量,直接空着就会使用默认值如果传入参数,会覆盖默认值end;默认值参数被覆盖的存储过程--创建带输入参数存储过程---默认值被覆盖的情况createorreplaceprocedureaddstudaishurucanshumorenzhi1(snamevarchar2default默认值)isbegininsertintogradevalues(seq_grade.nextval,sname);end;declaresnamevarchar2(50):=sname1;beginaddstudaishurucanshumorenzhi1(sname);--如果传入参数,会覆盖默认值end;解决参数对应的存储过程--创建带输入参数存储过程---同时存在多个参数的时候,而且是有默认值和无默认值的混合起来,需要通过名字对应方式解决,位置就可以不一致了createorreplaceprocedureaddstuduiying(snamexingcanvarchar2default默认值)isbegininsertintogradevalues(seq_grade.nextval,snamexingcan);end;declaresnamevarchar2(50):=sname1;beginaddstuduiying(snamexingcan=sname);--如果传入参数,会覆盖默认

文档评论(0)

胖鸥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档