网站大量收购闲置独家精品文档,联系QQ:2885784924

第07章 理论 .ppt

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

PL/SQL子程序和包 课程安排 Oracle数据库基础概念 PL/SQL编程基础 PL/SQL程序控制结构 在PL/SQL中更改数据和管理事务 在PL/SQL中使用游标获取数据 动态SQL 开发PL/SQL子程序和包 使用PL/SQL开发触发器 JAVA操作数据库 总复习 回顾 动态SQL语句 原因 原理 绑定变量 动态SQL 本章大纲 子程序 存储过程 函数 存储过程 VS 函数 包 块 块 匿名块 在PL/SQL中,最小的执行单位就是块。 理解:所有代码都写在begin..end中来执行 命名块 优点:重用块代码,简化开发和维护,并提高系统性能 命名块分类 存储过程:能够完成一系列增删改查动作的PL/SQL块 函 数:只能计算的PL/SQL块,不能修改数据 触 发 器:某表上发生增删改事件时所自动执行的块 包、包体:管理存储过程和函数,类似容器的作用。 子程序 子程序分类 过程:又叫存储过程,Stored Procedure,简称:sp。 函数:function 触发器:trigger 子程序优点 模块化:一个过程完成一个模块(如计算税后工资) 可重用性:一次编写,反复调用 易维护:谁出错,修改谁 更高效:每个方法只编译一次;运行多次,但只在内存中加载一次。 易调试:可以利用工具单步调试(匿名块不能),实用。 存储过程 创建存储过程 与块的关系 存储过程头定义+块 = 存储过程 调用存储过程 call 存储过程(变量):JDBC中调用sp标准方式 exec 存储过程(变量):PL/SQL中调用,支持控制台输出 存储过程 案例 删除指定名称表格 特点:无参数存储过程 添加员工和部门(给出部门名,工号,姓名,工作日期) 特点:输入参数 添加指定员工,并返回员工总数 特点:输入参数,输出参数 根据员工号更新员工姓名(最大10位),并返回新姓名 特点:输入输出参数 存储过程 传递参数 根据位置传递 根据参数定义的顺序调用 根据名称传递 根据参数的名称调用,顺序可与定义时不同 混合传递 同时使用位置和名称传递。 演示 案例:添加部门信息,部门名称重复时要给出提示,然后通过三种方式调用。 存储过程 存储过程的管理 查看过程的源代码 删除过程 函数 为什么要函数 专门完成复杂的业务运算功能,并返回运算结果。 语法 函数 子程序 函数:能够完成计算并返回计算结果,注意不能修改数据。 示例:计算一个数的两倍后并返回。 函数 演示 案例一:计算两个数的和 案例二:查询指定部门人数 思考:如何让程序变得更强壮? 回答:使用异常,没有指定部门时可返回-1(同学自行完成)。 案例三:演示在函数中执行insert语句。 函数 函数的管理 查看函数的源代码 删除函数 函数 函数的用途 直接用于计算表达式的值 通常直接用于各种DML语句 函数的限制 在函数中不能修改数据。 存储过程 VS 函数 相同点 都有输入、输出、输入输出参数 都可以通过输出参数传递信息给外部 不同点 函数必须有返回值 函数不能修改数据 用途 存储过程:主要用数据修改和业务处理 函 数:只能用于数据计算 子程序的调试 演示: 开发自定义函数f_add( a NUMBER, b NUMBER)调试。 要点: 调试是开发复杂业务简单而有效的方法。 优秀是一种习惯,调试也是。 注意点: 输入参数不能修改值,而输出参数或输入输出参数才行。 本章大纲 子程序 包 包的概述 建立包 重载子程序 私有项与公有项 使用游标 包概述 为什么要用包 问题:在大型系统中,过程和函数非常多,如何管理? 解决:使用包将过程和函数分类管理。 包概念 表是数据库的一种对象,而包也是数据库中的一种对象。 表中保存的是数据,包中保存的是各种代码(过程、函数、变量类型等) 。 包 创建包 创建和使用包 包 包用于逻辑“包含”相关的过程和函数,它由包头和包体两部分组成。 示例:将前面的函数f_add定义在包中并调用。 重载子程序 重载子程序 在一个包中两个子程序名称相同,而参数不同。 参数不同:指参数类型、个数、顺序任何一种情况不同。 在调用时Oracle将自动根据参数类型调用对应子程序。 限制 如果两个子程序仅参数名称不同,则不算重载 参数类型相同,而返回类型不同,不算重载 重载的参数必须是基本类型。 包与游标 在包中游标 包 包的优点 模块化管理过程和函数 可以先在包中完成设计,而不必完成具体实现 可以利用包的私有子程序来隐藏信息 可以定义公有对象和对象来达到共享的目的,如通过游标传递数据 性能更高,因为包中一个子程序被调用,整个包都将被调用内存中。 查询子程序信息 查询子程序名称 查询子程序文本 命名规范 存储过程:

文档评论(0)

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

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

1亿VIP精品文档

相关文档