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

补充-ORACLE_存储过程.ppt

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

问题:怎样才能简单、高效地在不同应用程序之间共享PL/SQL代码? 特性: 具有唯一的名称。 可存储在数据库中。 可作为数据字典中的元数据使用。 可将参数传递给它,也可返回值(一个或多个)。 可在顶层执行或使用它的名称在其它程序中调用使用。 主要功能: 模块化、封装性、代码集中、可重用性、执行性能好 示例 1、存储子程序与应用子程序的区别 过程和函数可以在各种环境中创建。过程和函数也称为子程序。 子程序由下列几部分组成: 块的名字和类型块头 必需的 建立局部标识符的说明部分(DECLARE) 可选的 执行动作的执行部分(EXCUTE) 必需的 进行处理错误的错误处理部分(EXCEPTION) 可选的 2、开发一个存储过程和函数的步骤 用系统编辑器或字处理软件写一个含有CREATE PROCEDURE或CREATE FUNCTION语句的脚本文件; 在写CREATE PROCEDURE或CREATE FUNCTION语句时,应该充分考虑运行时出错的处理,即应该考虑例外处理EXCEPTION; 在SQL*PLUS中运行脚本文件,将过程或函数的源代码编译成编译代码P_code,并把两种代码都存储到数据库在中; 调试编译错误; 在Oracle环境下调用开发的函数或存储过程; 在运行期间调试过程、函数的逻辑错误。 注意: 不论编译是否成功,创建过程/函数命令CREATE PROCEDURE或CREATE FUNCTION都将自动把其源代码存入数据库中,而编译代码只有在编译成功后才能存入数据库中。 只有编译代码被存入到数据库的存储过程和函数才能被调用。 2.1、创建过程与使用 创建过程语句的语法如下所示: CREATE [OR REPLACE] PROCEDURE [schema.]procedure_name [ ( argument[{IN | OUT | IN OUT}] datatype, ... argument[{IN | OUT | IN OUT}] datatype) ] {IS | AS} [description part 说明部分] BEGIN SQL STATEMENT 语句序列 [EXCEPTION 例外处理] END [procedure Name 过程名]; 创建了过程就可以从PL/SQL块中调用它。 示例: BEGIN show_line(50, ‘=’); END; / 过程参数说明: OR REPLACE 是一个可选的关键字,建议用户使用此关键字。如果过程已经存在,该关键字将重新创建过程,这样就不必删除和重新创建过程。 关键字IS 和 AS均可,它们本身没有区别。IS后面是一个完整的PL/SQL块,可以定义局部变量,但不能以DECLARE开始。局部变量在过程内部存放值。 形式参数可以有三种模式:IN、OUT、IN OUT。如果没有为形式参数指定模式,那么默认的模式是IN。 IN、OUT、IN OUT三种模式的描述 举例说明三种模式参数的区别以及在过程体内可以出现的位置 CREATE OR REPLACE PROCEDURE modetest( P_inparameter in number, P_outparameter out number, P_inoutparameter in out number) IS V_localvarriable number; Begin V_localvarriable:= P_inparameter ; P_outparameter :=7; V_localvarriable := P_inoutparameter; P_inoutparameter :=7; End; / 几种去掉不必要的输入参数的方法: 利用数据库序列(SEQUENCE)生成器为主关键字创建序号。(例如:雇员编号、部门编号、定单号) 从USER函数中获取用户名。(例如:销售人员、顾客、审计表使用的用户名) 从SYSDATE函数中获取当前日期(例如雇佣日期、定货日期、定货日期、开始日期) 在适当时候存储默认值。(例如:某定单数量一定是从1开始) 在实际中按照一些常识性知识获得变量的值。(例如:新雇员若不是做销售工作,则其奖金为NULL,等) 举例;没有指定参数的模式 利用过程进行查询处理,获取一个雇员的信息 注意: 改变IN OUT 参数的值有两种

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档