第6章 PLSQL编程基础2ppt课件.ppt_第1页
第6章 PLSQL编程基础2ppt课件.ppt_第2页
第6章 PLSQL编程基础2ppt课件.ppt_第3页
第6章 PLSQL编程基础2ppt课件.ppt_第4页
第6章 PLSQL编程基础2ppt课件.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1 第六章PL SQL编程基础 PL SQL的简介PL SQLPL SQL的控制结构出错处理 2 第三节 PL SQL的控制结构PL SQL的控制结构包括条件语句和循环语句两种类型 条件控制结构 是根据另一条语句或表达式的结果执行一个操作或一条语句 循环控制结构 重复地执行一条或多条语句 或者循环一定的次数 或者直到满足某一条件时退出 3 二 循环循环被分为四种类型 简单循环 LOOP ENDLOOP WHILE循环 WHILE LOOP ENDLOOP 数字式FOR循环 FOR LOOP ENDLOOP 在循环体内必须有退出循环的语句 否则就是死循环 退出循环的语法有两种 EXITWHENCONDITION IFCONDITIONTHENEXIT ENDIF 4 1 简单循环简单循环的语法如下 LOOP语句序列 EXIT WHENcondition ENDLOOP 5 例1 用简单循环loop语句实现输出1 10之间的平方数declareinumber 1 beginloopdbms output put line i 的平方数为 i i i i 1 exitwheni 10 endloop end Loop开始 退出循环体语句 Loop结束 6 例2 declareinumber 1 beginloopdbms output put line i 的平方数为 i i i i 1 ifi 10thenexit endif endloop end 7 2 WHILE循环WHILE循环的语法如下 WHILEconditionLOOP语句序列 ENDLOOP 8 例3 用WHILE循环结构求10的阶层 declarennumber 1 count1number 1 beginwhilecount1 10loopn n count1 count1 count1 1 endloop dbms output put line n end While语句控制Loop开始 While语句控制Loop结束 9 3 数字式FOR循环数字式FOR循环的语法如下 FORloop counterIN REVERSE low bound high boundLOOP语句序列 ENDLOOP 其中 IN 表示索引变量的值从小到大INREVERSE 表示索引变量的值从大到小loop counter INTEGER类型的索引变量 low bound 指定索引变量值范围的最小值high bound 指定索引变量值范围的最大值 10 例4 用FOR循环结构求10的阶层 declarennumber 1 count1number beginforcount1in2 10loopn n count1 endloop dbms output put line n end 11 例5 Declareinumber beginforiin1 5loopdbms output put line i i endloop dbms output put line endofforloop end 12 例6 在FOR循环中考虑索引变量的值从大到小beginforiinREVERSE1 5loopdbms output put line i i endloop dbms output put line endofforloop end 13 第四节 出错处理出错处理方法是程序对运行时刻出现的错误作出反应并进行处理的方法 在PL SQL块中 当错误发生时 程序控制无条件地转移到当前PL SQL块的出错处理部分 一旦控制转移到出错处理部分 就不能再转到相同块的可执行部分 出错处理是PL SQL块中可选部分 14 一 出错处理的语法和原则1 出错处理的语法EXCEPTIONWHEN错误1 OR错误2 THEN语句序列1 WHEN错误3 OR错误4 THEN语句序列2 WHENOTHERSTHEN语句序列3 END 15 2 出错处理的原则 将WHENOTHERS从句放置在所有其他出错处理从句的后面 最多只能有一个WHENOTHERS从句 在块中必须以关键字EXCEPTION开始一个出错处理 可以在块中定义多个出错处理 WHEN语句 每一个出错处理包含一组语句 当一个错误发生时 在离开块之前 PL SQL只处理一个出错处理 16 二 各种错误处理出错情况包括 系统预定义的错误 用户自定义的错误 17 1 系统预定义的错误这些错误是在系统的STANDARD包中定义的 直接在PL SQL块的出错处理部分的WHEN从句中进行处理 例8 declarenamestudent sname type beginselectsnameintonamefromstudentwheresno dbms output put line name exceptionwhenno data foundthendbms output put line 没有找到所需要的数据 end 系统错误异常处理 18 例9 declarenamestudent sname type beginSelectsnameintonamefromstudentwheresno dbms output put line name exceptionwhenno data foundthendbms output put line 没有找到所需要的数据 end 19 例10 declareanumber 8 bnumber 0 cnumber 3 beginc a b dbms output put line c exceptionwhenzero dividethendbms output put line 错误 除数不能为0 end 20 21 22 2 用户自定义的错误用户自定义的错误是程序定义的一个错误 并不一定是一个Oracle错误 它可能是与业务相关的一个错误 比如违反了业务规则 处理用户自定义的错误分三步 1 定义错误 2 触发错误 3 处理错误 23 1 定义错误用户定义的错误是在PL SQL块的说明 declare 部分进行定义的 和变量相类似 错误也有一个作用范围 定义错误的语法 错误名exception 例 DECLAREMY EXCEPTIONexception 24 2 触发错误当一个相关的条件满足时 在语句执行部分通过显式使用RAISE语句来触发用户定义的错误 而预定义的错误是当相关的Oracle错误发生时被PL SQL执行引擎隐式触发的 触发错误的语法 RAISE错误名 例 触发用户自定义的错误BEGINIFV COMMISNULLTHENRAISEMY EXCEPTION ENDIF 25 3 处理错误在程序的出错处理部分对自定义的错误进行处理 处理方法与系统预定义的错误一样 处理错误的语法 WHEN错误名THEN 例 处理用户自定义的错误EXCEPTIONWHENMY EXCEPTIONTHENDbms output put line 奖金为空 26 例11 declarev namestudent sname type eexception beginselectsnameintov namefromstudentwheresno 05880102 ifv name 王五 thenraisee endif dbms output put line v name exceptionwhenethendbms output put line 错误 不是要找的王五同学 end 27 例12 输出李四选修c2这门课程的成绩 declarev gradesc grade type eexception beginselectgradeintov gradefromsc studentwherestudent sno sc snoandsname 李四 andcno

温馨提示

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

评论

0/150

提交评论