数据库技术与应用(达梦)课件 任务4.4 使用存储过程实现供电申请和审批_第1页
数据库技术与应用(达梦)课件 任务4.4 使用存储过程实现供电申请和审批_第2页
数据库技术与应用(达梦)课件 任务4.4 使用存储过程实现供电申请和审批_第3页
数据库技术与应用(达梦)课件 任务4.4 使用存储过程实现供电申请和审批_第4页
数据库技术与应用(达梦)课件 任务4.4 使用存储过程实现供电申请和审批_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《数据库原理与应用》任务4.4使用存储过程实现供电申请和审批项目4:数据库编程第15讲数据库编程核心—存储过程主讲人:汪菊琴本任务使用存储过程实现电力调度中的申请供电和审批供电流程。申请供电是由当地电网分局工作人员根据街道当天用电量的1.2倍申请第二天的用电量。审批供电是由当地电网总局工作人员审批各街道的供电申请,如通过,则第二天根据申请电量供电。素质目标能力目标知识目标1)掌握存储过程的创建、调用和管理。2)掌握存储过程的参数类型(IN、OUT、INOUT)及使用方法。3)理解存储过程和存储函数的区别。1)能够创建存储过程实现业务需求。2)能够管理存储过程。1)培养模块化设计和代码复用的工程思维。2)树立用电安全意识

存储过程(StoredProcedure)是达梦数据库中存储模块中的一种。它是预编译并存储在数据库中的一组SQL语句集合,可被重复调用。

存储过程是数据库中的一个重要对象。它可以封装复杂业务逻辑,实现批量数据处理、事务控制等操作。4.4.1创建和调用存储过程1.创建存储过程4.4.1创建和调用存储过程语法格式如下:CREATEPROCEDURE[<模式名>.]<存储过程名>[(<参数名><参数模式><参数类型>[<默认值表达式>{,…})]<AS|IS>[<声明部分>]BEGIN<执行部分>END[存储过程名];2.调用存储过程4.4.1创建和调用存储过程语法格式如下:CALL[<模式名>.]<存储函数名>[(<参数>)];或:[<模式名>.]<存储函数名>[(<参数>)];存储过程的参数4.4.2存储过程的参数无参有参输入型:用IN关键字修饰(默认)输出型:用OUT关键字修饰输入输出型:用INOUT关键字修饰{{1.创建无参存储过程【例4-25】用存储过程实现任务4.3中例4-21中计算每日平均用电量的功能。要求创建存储过程P_CONSUME_AVG,计算每日平均用电量。再调用该存储过程输出每日平均用电量。4.4.2存储过程的参数1.创建无参存储过程(1)创建计算每日平均用电量的存储过程P_CONSUME_AVG。(2)调用P_CONSUME_AVG存储过程输出每日平均用电量。4.4.2存储过程的参数

存储过程命名时,建议以“P_”或者“PROC_”作为前缀,方便和其它对象区分。CREATEPROCEDUREEPDMS.P_CONSUME_AVGASBEGINSELECTTRUNC(AVG(CONSUME_NUM),2)AS每日平均用电量

FROMEPDMS.T_CONSUME;END;CALLEPDMS.P_CONSUME_AVG;2.创建带输入(IN)参数的存储过程【例4-26】用存储过程实现任务4.3中例4-22中根据参数用户编号计算该用户每日平均用电量的功能。要求创建存储过程P_CONSUME_AVG_USER,计算每日平均用电量。4.4.2存储过程的参数2.创建带输入(IN)参数的存储过程(1)创建计算某个用户每日平均用电量的存储过P_CONSUME_AVG_USER。4.4.2存储过程的参数CREATEPROCEDUREEPDMS.P_CONSUME_AVG_USER(u_idINVARCHAR(20))ASBEGINSELECTTRUNC(AVG(CONSUME_NUM),2)AS每日平均用电量FROMEPDMS.T_CONSUME

WHEREUSER_ID=u_id;END;2.创建带输入(IN)参数的存储过程(2)调用存储过程P_CONSUME_AVG_USER,输出“1000000001”用户的每日平均用电量。4.4.2存储过程的参数CALLEPDMS.P_CONSUME_AVG_USER('1000000001');调用存储过程P_CONSUME_AVG_USER时,先将实参''1000000001''传送给形参u_id,然后执行过程体中SELECT语句查询指定编号的用户每日平均用电量。创建带输出(OUT)参数的存储过程【例4-27】用带输出参数的存储过程实现例4-26,要求创建存储过程F_CONSUME_AVG_USER2,计算每日平均用电量,将结果用输出参数返回。4.4.2存储过程的参数3.创建带输出(OUT)参数的存储过程(1)创建计算某个用户每日平均用电量的存储过程P_CONSUME_AVG_USER24.4.2存储过程的参数CREATEPROCEDUREEPDMS.P_CONSUME_AVG_USER2 (u_idINVARCHAR(20),con_sumOUTDECIMAL(20,2))ASBEGIN SELECTAVG(CONSUME_NUM)INTOcon_sum FROMEPDMS.T_CONSUME WHEREUSER_ID=u_id;END;3.创建带输出(OUT)参数的存储过程(2)调用存储过程P_CONSUME_AVG_USER2,输出“1000000001”用户的每日平均用电量。4.4.2存储过程的参数DECLAREv_uidVARCHAR(20):='1000000001';v_con_sumDECIMAL(20,2);--用于接收输出结果的变量BEGIN--调用存储过程

CALLEPDMS.P_CONSUME_AVG_USER2(v_uid,v_con_sum);--打印结果

PRINTv_uid||'用户每日平均用电量为'||v_con_sum||'度';END;调用带有输出参数的存储过程时,对应的实参必须是一个变量。存储过程与存储函数在结构和功能上十分相似,主要差异在于:有无返回值:存储过程没有返回值,调用者只能通过访问OUT或INOUT参数来获得执行结果;而存储函数有返回值,它把执行结果直接返回给调用者。有无返回语句:存储过程可以使用不带返回值的RETURN;语句来提前退出过程体;而存储函数必须通过带返回值的RETURN语句来结束执行并返回结果。返回语句中能否带有表达式:存储过程的返回语句中不能带有表达式,只能是“RETURN;”,而存储函数的返回语句中必须带表达式。调用语句能否出现表达式中:存储过程没有返回值,因此它的调用不能出现在一个表达式中,而存储函数的调用可以出现在表达式中。[任务实施]

本任务使用存储过程实现电力调度中的申请供电和审批供电流程。1.技术分析(1) 根据任务要求,本任务需先创建并调用分局工作人员申请街道供电存储过程,再创建总局工作人员审批供电申请存储过程,最后调用该存储过程,完成供电申请和审批的整个流程。(2) 查询当日街道所辖用户的用电量,需采用内连接,连接用户用电量表、用户账号表和社区街道表。(3) 调用达梦数据库内置函数SYSDATE()、TO_CHAR()、SYS_GUID()和ADD_DAYS()。(4) 使用INSERT插入语句和UPDATE更新语句。[任务实施]2.实现步骤(1)创建分局工作人员申请街道供电存储过程P_APPLY,带有申请街编号和分局工作人员账号编号两个参数。(2)编写申请供电存储过程P_APPLY的过程体。采用内连接连接用户用电量表、用户账号表和社区街道表,查询当日街道所辖用户的用电量并乘以1.2,即为第二天需要申请的供电量,并存入v_supply_num变量。进行错误判断,防止没有查到街道的当日用电数据。在供电量申请表中插入一条申请记录。[任务实施]2.实现步骤(3)创建总局工作人员审批供电申请存储过程P_APPROVAL,带有审批标志、申请街编号和审批工作人员账号编号三个参数。(4)编写总局工作人员审批供电申请存储过程P_APPROVAL的过程体。查询出待审批的供电申请的供电日期和供电量数据,并赋给v_apply_time和v_supply_num变量。判断实参传过来的审批标志flag是否为1,如是,则先更新T_SUPPLYSTATUS表中该条申请的审批标志、审批时间和审批人账号三个字段的值,再向T_SUPPLY表插入第二天的供电量数据。使用存储过程实现供电申请和审批[任务测试]

(1)运行创建申请供电存储过程P_APPLY的代码,并调用P_APPLY。假设编号为'100003'的分局工作人员为'10302'街道申请第二天的供电,代码如下。

调用后,将在供电量申请表中插入一条申请记录。

CALLEPDMS.P_APPLY('10302','100003‘);[任务测试]

(2)运行创建审批供电申请存储过程P_APPROVAL的代码,并调用该过程。假设编号为'100000'的总局工作人员审批通过了'10302'街道第二天的供电申请,代码如下。

CALLEPDMS.P_APPROVAL(1,'10302','100000’);[任务测试]

调用后,会先更新供电量申请表相应申请的相关字段内容。再向供电量表中插入一条新的供电记录。评价指标评价标准分值得分创建申请街道供电存储过程正确运行,成功创建申请街道供电存储过程30调用申请街道供电存储过程正确运行,在供电量申请表中成功插入一条申请记录15创建审批供电申请存储过程理解连接条件的含义,正确创建视图,查询所需每日各地区各街道的总用电量和供电量40调用审批供电申请存储过程正确运行,成功更新供电量申请表,并在供电量表中成功

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论