oracle异常及触发器.ppt

oracle异常及触发器.ppt

ID:50360217

大小:82.00 KB

页数:23页

时间:2020-03-12

oracle异常及触发器.ppt_第1页
oracle异常及触发器.ppt_第2页
oracle异常及触发器.ppt_第3页
oracle异常及触发器.ppt_第4页
oracle异常及触发器.ppt_第5页
资源描述:

《oracle异常及触发器.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、oracle异常及触发器0异常处理什么是异常情态异常处理处理的是运行时错误,异常分为预定义异常和用户自定义异常。声明异常情态异常情态在块的声明部分进行声明,在块的执行部分进行触发,在块的异常部分进行处理。用户定义类型异常情态,需要程序员自己定义代码,对异常情况进行处理。例:Declaree_toomanystudentsexception;1e_toomanystudents的作用域和本块的其他变量相同。预定义型异常情态预定义型异常情态可以直接使用,没有必要声明。Invalid_cursor:当执行非法的游标操作时,会引发这个错误,如试图关闭已关闭

2、的游标。Cursor_already_open:试图打开已经打开的游标,会引发这个错误。No_data_found:当selectinto语句没有返回行时,和引用没有赋值过的pl/sql表的元素时会引发这个错误。Too_may_rows:当selectinto语句返回多个行时,会引发这个错误。Invalid_number:当试图从字符串转换为数值失败时,会引发这个错误,在过程性语句中会引发value_error错误。如:下面的语句引发invalid_number错误,因为‘x’不是数值。Insertintostudents(id,first_nam

3、e,last_name)values(‘x’,’scott’,’smith’);2Storage_error和program_error:是内部的异常情态,通常不会引发他们。Value_error:当在过程性语句中发生了算术、转换、截尾或限制性错误时会引发这个情态。如果在sql语句中发生错误,会引发invalid_number错误。这个错误可能是一条赋值语句或selectinto语句的执行结果。下面的两个例子都引发value_error错误。Declarev_tempvarvarchar2(3);Beginv_tempvar:='ABCD';End

4、;Declarev_tempvarnumber(2);Beginselectidintov_tempvarfromstudentswherelast_name='smith';End;3触发异常情态当预定义的异常情态错误发生时,就会触发该异常情态。用户定义的异常情态由raise语句触发。例:Declaree_toomanystudentsexceptionv_currentstudentsnumber(3);v_maxstudentsnumber(3);Beginselectcurrent_students,max_studentsintov_cu

5、rrentstudents,v_maxstudentsfromclasseswheredepartment=‘HIS’andcourse=‘101’;4ifv_currentstudents>v_maxstudentsthenraisee_toomanystudentsEndif;End;当引发异常情态时,控制转给该块的异常处理部分。如果没有异常处理部分,该异常处理部分将传给包含该块的块。一旦将控制转给异常处理部分,没有办法再将控制返回给该块的执行部分。处理异常情态异常部分的语法如下:Exceptionwhenexception_namethen处

6、理错误语句序列whenexception_namethen处理错误语句序列whenothersthen处理错误语句序列end;5一个处理器可以对多个异常情态进行处理,用or连接例:Exceptionwhenno_data_foundortoo_many_rowstheninsertintolog_table(info)values(‘aselecterroroccurred’);End;Others异常处理器将对所有语法的异常情态进行处理,一般放在异常处理的最后,可以保证所有的错误都被检测到。Declaree_toomanystudentsexce

7、ptionv_currentstudentsnumber(3);v_maxstudentsnumber(3);v_errorcodenumber;v_errortextvarchar2(200);Beginselectcurrent_students,max_studentsintov_currentstudents,v_maxstudentsfromclasseswheredepartment=‘HIS’andcourse=‘101’;6ifv_currentstudents>v_maxstudentsthenraisee_toomanystud

8、entsEndif;Exceptionwhene_toomanystudentstheninsertintolog_tab

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。