- 1、本文档共234页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第二种方法当PL/SQL块的执行满足一定条件时,可以向PL/SQL程序返回一个错误代码和一条错误信息。错误代码的范围是-20000到-20999,这个范围的代码是Oracle保留的,本身没有任何意义。程序如果把一个错误代码和某个条件关联起来,那么在条件满足时系统将引发这样的错误。这是一种人为制造的错误。*第二种方法PL/SQL提供了一个过程,用于向PL/SQL程序返回一个错误代码和一条错误信息。这个过程是:RAISE_APPLICATION_ERROR(错误代码,错误消息)*第二种方法例子DECLAREout_of_rangeEXCEPTION;resultinteger:=0;BEGINforIin1..100loopresult:=result+i;ifresult1000thenRAISE_APPLICATION_ERROR(-20001,’越界!’);ENDif;ENDloop;END;*第二种方法例子从程序运行的结果来看,程序的执行过程确实发生了错误,返回了指定的错误代码和错误信息。在这一点上用户自定义的异常与非预定义异常是相似的。只不过非预定义异常是由数据库服务器自动抛出的,且错误代码和错误信息都是由数据库服务器指定的。*异常的传递如果PL/SQL块中没有定义相应的异常处理程序,PL/SQL程序将把异常传递到程序的调用者,然后结束程序的执行。如果这个程序是在SQL*Plus中执行的,那么异常将会传递到SQL*Plus环境,从而将错误信息显示在屏幕上。*异常的传递在PL/SQL块中可以定义过程、函数等形式的子程序,子程序中也会产生异常。如果子程序没有处理出现的异常,那么异常将被传递到它的调用者,即上一层的PL/SQL程序,从而在主程序中也会产生错误,所以主程序将在调用子程序的地方停止执行而去处理这个异常。*异常的传递从子程序中传递到主程序的异常,在主程序中也可以处理。但在主程序中不容易确定是什么地方出现了异常,也无法对程序的不同部分产生的异常进行单独的处理。因此,对异常的处理应当遵循“不扩散”的原则。在子程序中出现的异常应该在子程序处理,不要扩散到主程序中。*课堂练习创建一个存储过程query_comm,输入参数为雇员号,如果该雇员没有补助,则提供一个自定义错误代码“-20001”及“该雇员无补助!”的消息文本;如果查无此人,在异常处理部分给出“没有该雇员!”的提示信息。再编写一个PL/SQL块,调用query_comm存储过程,当雇员没有补助时就按“非预定义异常错误”进行处理(自定义的错误代码是“-20001”),并给出“提醒财务部门给该雇员加补助。”的提示信息。职员表emp(empno,ename,job,mgr,hiredate,sal,comm.,deptno)*课堂练习参考答案定义存储过程:CREATEORREPLACEPROCEDUREquery_comm(v_noemp.empno%TYPE)ASv_commm%TYPE;BEGINSELECTcommINTOv_commFROMempWHEREempno=v_no;IFv_commISNULLORv_comm=0THENRAISE_APPLICATION_ERROR(-20001,’该雇员无补助!’);ENDIFEXCEPTIONWHENNO_DATA_FOUNDTHENDBMS_OUUPUT.PUT_LINE(‘没有该雇员!’||v_no);END;*课堂练习参考答案调用存储过程:DECLAREe_comm_nullEXCEPTION;PRAGMAEXCEPTION_INIT(e_comm_null,-20001);v_empnoemp.empno%TYPE;BEGINv_empno:=7369;query_comm(v_empno);EXCEPTIONWHENe_comm_nullTHENDBMS_OUUPUT.PUT_LINE(‘提醒财务部门给该雇员加补助。’);END;*10.8触发器的概念与作用触发器是一种特殊的存储过程,编译后存储在数据库服务器中。当特定事件
您可能关注的文档
- 《Oracle数据库应用》第7章 管理表空间-教学课件(非AI生成).ppt
- 《Oracle数据库应用》第8章 管理数据库用户-教学课件(非AI生成).ppt
- 《Oracle数据库应用》第9章 管理数据库对象-教学课件(非AI生成).ppt
- 《计算机网络与通讯》第02讲 物理层-教学课件(非AI生成).ppt
- 《计算机网络与通讯》第03讲 数据链路层(上)-教学课件(非AI生成).ppt
- 《计算机网络与通讯》第04讲 数据链路层(下)-教学课件(非AI生成).ppt
- 《计算机系统结构》第0章 课程简介-教学课件(非AI生成).ppt
- 《计算机网络与通信》(7.3 Internet协议)-应用层-教学课件(非AI生成).pptx
- 《Oracle数据库应用》第3章 Oracle的安装、启动、关闭-教学课件(非AI生成).ppt
- 《Oracle数据库应用》第5章 SQL 语言-教学课件(非AI生成).ppt
- 2025年吉林省梅河口市事业单位招聘考试公共基础知识试题题库及答案详解(真题汇编).docx
- 2025年蚂蚁居家云客服测评考试题及参考答案.docx
- 2025年吉林省梅河口市事业单位招聘考试公共基础知识试题题库含答案详解(培优a卷).docx
- 2025年吉林省梅河口市事业单位招聘考试公共基础知识试题题库及答案详解(必威体育精装版).docx
- 2025年吉林省梅河口市事业单位招聘考试公共基础知识试题题库含答案详解(实用).docx
- 2025年吉林省梅河口市事业单位招聘考试公共基础知识试题题库含答案详解(必威体育精装版).docx
- 2025年吉林省梅河口市事业单位招聘考试公共基础知识试题题库及答案详解(名校卷).docx
- 2025年吉林省梅河口市事业单位招聘考试公共基础知识试题题库及答案详解(夺冠系列).docx
- 2025年吉林省梅河口市事业单位招聘考试公共基础知识试题题库及答案详解(名师系列).docx
- 2025年吉林省梅河口市事业单位招聘考试公共基础知识试题题库及答案详解(精选题).docx
文档评论(0)