版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EBS技术开发培训
PL/SQL开发培训PL/SQL开发培训1PL/SQL开发培训PL/SQL基本结构PL/SQL输入与输出实例:一个循环写入表数据的实例2PL/SQL开发培训1PL/SQL开发培训PL/SQL基本结构PL/SQL输入与输出实例:一个循环写入表数据的实例3PL/SQL开发培训PL/SQL基本结构条件控制循环处理异常处理游标4PL/SQL开发培训PL/SQL基本结构PL/SQL基本架构DECLARE--声明部分
--声明pl/sql的变量,类型,游标和本地的过程或者函数BEGIN--执行部分--sql语句
--pl/sql语句EXCEPTION--异常处理部分/*Exception-handling
section-error-handlingstatementsgohere.*/END;在上面演示的块结构中,只有执行部分是必须的,声明部分和异常处理部分都是可选的。块结构中的执行部分至少要有一个可执行语句。
5PL/SQL开发培训条件控制选择结构测试某个条件,然后根据条件在两序列语句中选择一列执行有三种语句形式IF-THENIF-THEN-ELSEIF-THEN-ELSIF6PL/SQL开发培训循环控制使用LOOP语句可以重复或跳过程序块的选取部分
有三种形式的LOOP语句LOOPWHILE-LOOPFOR-LOOP7PL/SQL开发培训LOOP语句LOOP将重复某些语句序列
被重复的语句位于关键词LOOP和ENDLOOP之间每执行一次循环迭代过程,就执行一次语句序列,然后控制又回到循环的开始位置
LOOP语句;ENDLOOP;8PL/SQL开发培训EXIT语句如果不需要或不可能让循环进一步处理,用于完成循环有两种形式的EXIT语句EXITEXIT-WHEN9PL/SQL开发培训EXIT语句(续)强制循环无条件完成
必须放在循环内LOOP语句;IF<条件>THENEXIT;--立即退出当前循环ENDIF;ENDLOOP;--控制到此处恢复
10PL/SQL开发培训EXIT-WHEN语句允许循环有条件完成
在遇到EXIT语句时对WHEN子句中的条件进行判断如果判定条件为TRUE,则循环完成
语句;EXITWHEN<条件>;ENDLOOP;11PL/SQL开发培训WHILE-LOOP语句将条件与LOOP-ENDLOOP中的语句序列相关联在每次循环前判定条件如果条件值为TRUE,就执行一次语句序列,然后控制又回到循环的开始位置
如果条件判定为FALSE或NULL,则绕过循环,并且控制转到下一个语句12PL/SQL开发培训WHILE-LOOP语句(续)循环执行的次数取决于条件且只有完成循环后才可知WHILE<条件>LOOP语句;ENDLOOP;13PL/SQL开发培训FOR-LOOP语句循环在指定的整数范围内进行
对于一定范围内的每个整数,都执行一次该语句此范围为循环架构的一部分,它位于FOR和LOOP之间当首次进入循环时,范围只判定一次每执行一次循环,循环计数器就会增加14PL/SQL开发培训FOR-LOOP语句(续)不能为循环计数器赋值在运行时可以动态分配循环范围FOR<计数器>IN[逆转]lower_bound..higher_boundLOOP语句;ENDLOOP;15PL/SQL开发培训异常简介错误条件称为异常错误发生时,产生异常,这些异常包括常规执行停止并且控制转移到了PL/SQL程序块或子程序的异常处理部分要处理产生的异常,需要编写单独的称作异常处理程序的例程
16PL/SQL开发培训异常介绍(续)有两类异常预定义异常(内部异常)
用户定义的异常
17PL/SQL开发培训游标简介要处理SQL语句,PL/SQL打开一个称作环境区域的工作区
PL/SQL使用该区域执行SQL语句和存储处理信息称作“游标”的PL/SQL结构允许您命名环境区域,访问其信息及在某些情况下控制其处理过程18PL/SQL开发培训游标简介(续)查询返回多行时,可以将游标显式地定义为
在查询所返回的首行之外的处理对当前正在处理的行进行跟踪由多行查询返回的行集称作活动集19PL/SQL开发培训游标类型PL/SQL使用两类游标隐式游标由Oracle自动定义并打开,用于处理每个SQL语句最近打开的环境区域被称为“SQL%”游标显式游标如果查询返回多行,则可定义显式游标来对当前正在处理的行进行跟踪20PL/SQL开发培训游标功能游标名是一个未声明的标识符,仅用于引用查询
不能对游标赋值,也不能在表达式中使用游标名显式游标可以有参数游标参数可以出现在查询中常量出现的任何位置上可以将游标参数初始化为默认值
21PL/SQL开发培训游标的功能(续)可以将实参的不同值传递到游标,按需要采用或替换默认值游标参数的范围对于游标来讲是局部变量当游标为OPENED时,游标参数的值可以用于相关的查询
22PL/SQL开发培训定义游标可以通过在PL/SQL程序块的声明部分命名游标或将它与某个查询关联来定义一个游标CURSOR<游标名>IS<SELECTstatement>;示例CURSORemp_curISSELECTempno,ename,job,salFROMemp;23PL/SQL开发培训操纵游标可以使用下列语句操纵游标OPENFETCHCLOSE在使用OPEN、CLOSE或FETCH语句引用这些语句之前必须对游标进行声明24PL/SQL开发培训OPEN语句初始化或打开游标
在查询返回任何行之前必须打开游标打开游标将执行查询并识别活动集合
OPEN<游标名>示例OPENemp_cur;25PL/SQL开发培训FETCH语句一次只能在一个活动集合中检索行
可以重复执行,直到检索到了所有行FETCH<游标名>INTOvar1,…,varN;ORFETCH<游标名>INTOrecord_variable;示例FETCHemp_curINTOmrec;26PL/SQL开发培训CLOSE语句关闭游标并让活动集合成为未定义内容
CLOSE<游标名>;示例CLOSEemp_cur;只要游标关闭,可以通过使用OPEN语句重新打开它
27PL/SQL开发培训显式游标的属性每个游标有四个属性可以用于访问游标的环境区域%NOTFOUND%FOUND%ROWCOUNT%ISOPEN要使用这些属性,只要简单地将它们添加到游标名后即可28PL/SQL开发培训显式游标的属性(续)%NOTFOUND如果因为没有多行而使最后的FETCH失败,则判定为TRUE如果最后的FETCH返回一行,则判定为FALSE%FOUND如果最后的FETCH返回一行,则判定为TRUE如果因为没有多行而使最后的FETCH失败,则判定为FALSE
29PL/SQL开发培训显式游标的属性(续)%ROWCOUNT返回当前从活动集合获取的行数%ISOPEN如果打开显示游标,则判定为TRUE如果关闭显示游标,则判定为FALSE30PL/SQL开发培训显式游标的属性(续)示例IFemp_cur%ISOPENTHENFETCHemp_curINTOm_rec;IFemp_cur%FOUNDTHENmsr_no:=emp_cur%ROWCOUNT;ENDIF;ELSEOPENemp_cur;ENDIF;31PL/SQL开发培训游标FOR循环将它的循环索引声明为%ROWTYPE的记录隐式地打开游标从活动集反复获取行的值并传送到记录中的字段在处理完所有行,并且循环退出时,隐式地关闭游标32PL/SQL开发培训游标FOR循环(续)为满足与游标名相关的查询的每一行执行循环结构中的语句游标FOR循环用于简化代码编写33PL/SQL开发培训游标FOR循环(续)DECLARECURSORemp_curISSELECTempno,ename,job,salFROMemp;BEGINFORmrecINemp_curLOOPINSERTINTOtempVALUES(mrec.empno,mrec.ename, mrec.job,mrec.sal);ENDLOOP;END;34PL/SQL开发培训参数化的游标游标也可接收参数这些参数仅可用于游标的SELECT语句的输入游标参数可以在查询中常量出现的任何位置上出现可以在OPEN语句或游标FOR循环中提供参数值35PL/SQL开发培训参数化的游标(续)DECLARECURSORemp_cur(pjobinemp.job%TYPE)
ISSELECTempno,ename,job,salFROMempWHEREjob=pjob;mjobemp.job%TYPEBEGINmjob:=‘&job’;FORmrecINemp_cur(mjob)LOOPstatements;ENDLOOP;END;36PL/SQL开发培训游标FORUPDATEOF和CURRENTOFCURRENTOF子句用于在UPDATE或DELETE语句中以引用游标当前行必须使用FORUPDATEOF子句声明游标,并在一行上打开并定位如果游标没有打开,则CURRENTOF子句将产生错误37PL/SQL开发培训游标FORUPDATEOF和CURRENTOF(续)如果游标已经打开,但没有处理FETCH或最后一个FETCH没有返回任何行,则将产生预定义例外NO_DATA_FOUND38PL/SQL开发培训游标FORUPDATEOF和CURRENTOF(续)DECLARECURSORemp_curISSELECTempno,ename,job,salFROMempWHEREjob=pjobFORUPDATEOFsal;BEGINFORmrecINemp_curLOOPUPDATEempSETsal=sal*0.15WHERECURRENTOFemp_cur;ENDLOOP;END;39PL/SQL开发培训隐式游标的属性虽然OPEN、CLOSE和FETCH语句不能用于操作SQL%游标,但属性可以用于访问游标的环境区域在游标自动打开之前,属性判定为NULL40PL/SQL开发培训隐式游标的属性(续)下列四个游标属性可以用于访问SQL%游标的环境区域SQL%NOTFOUNDSQL%FOUNDSQL%ROWCOUNTSQL%ISOPEN41PL/SQL开发培训隐式游标的属性(续)SQL%NOTFOUND如果INSERT、UPDATE或DELETE语句没有影响行,则判定为TRUE,否则判定为FALSESQL%FOUND逻辑上与SQL%NOTFOUND相反如果INSERT、UPDATE或DELETE影响了一行或多行,则判定为TRUE,否则判定为FALSE42PL/SQL开发培训隐式游标的属性(续)SQL%ROWCOUNT返回INSERT、UPDATE或DELETE语句影响的行数SQL%ISOPENOracle执行完与其关联的SQL语句后,将自动关闭隐式游标对于隐式游标,总是将SQL%ISOPEN判定为FALSE43PL/SQL开发培训隐式游标的属性(续)示例DELETEFROMempWHEREempno=7864;IFSQL%NOTFOUNDTHEN..........ENDIF;44PL/SQL开发培训1PL/SQL开发培训PL/SQL基本结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度汽车4S店喷漆工艺优化合同
- 橡胶制品行业的供应链管理与协同发展考核试卷
- 二零二四年度知识产权许可与保密合同
- 区域代理合同协议范本
- 企业转让租赁合同范本
- 幼儿园的多元文化与跨文化教育考核试卷
- 2024年度电气故障排查及修复合同
- 二零二四年度龙门吊安装工程设计与优化合同
- 附赠促销合同范本
- 农业科学对农民社会保障的影响考核试卷
- 北京市朝阳区2024-2025学年九年级上学期期末模拟考试化学试卷(含解析)
- 金融时间序列
- 网络安全防护策略与指南
- 农产品溯源体系构建
- 2024全新物业服务培训
- 装饰图案(第2版)课件 李健婷 模块7、8 装饰图案的组织形式装饰图案在现代设计中的应用
- 风电场消防管理标准
- 企业宣传视频拍摄制作方案
- 2024年初中信息科技测试题及答案1
- 2024陕西省西安国际港务区定向招聘历年高频难、易错点500题模拟试题附带答案详解
- 脑出血课件完整版本
评论
0/150
提交评论