oracle_7 异常 游标 函数

oracle_7 异常 游标 函数

ID:15273898

大小:114.00 KB

页数:11页

时间:2018-08-02

oracle_7 异常 游标 函数_第1页
oracle_7 异常 游标 函数_第2页
oracle_7 异常 游标 函数_第3页
oracle_7 异常 游标 函数_第4页
oracle_7 异常 游标 函数_第5页
资源描述:

《oracle_7 异常 游标 函数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第七天异常游标函数l异常定义:异常处理用来处理正常执行中未预料的事件。异常分类:预定义异常:Oracle大约24个,不需要在程序中定义,Oracle自动引发非预定义异常:其它标准的Oracle错误,需要用户在程序中定义,然后由Oracle自动引发自定义异常:程序执行过程中,出现编程人员认为的非正常情况。对这种异常情况的处理,需要用户在程序中定义,然后显式地在程序中将其引发。语法:ExceptionWhen…thenWhenorthersthen..(必须放在最后)End;l预定义异常处理错误号异常错误信息名称说明ORA-0001Dup_val_on_index试图破坏一

2、个唯一性限制ORA-0051Timeout-on-resource在等待资源时发生超时ORA-0061Transaction-backed-out由于发生死锁事务被撤消ORA-1001Invalid-CURSOR试图使用一个无效的游标ORA-1012Not-logged-on没有连接到ORACLEORA-1403No_data_foundSELECTINTO没有找到数据ORA-1422Too_many_rowsSELECTINTO返回多行ORA-6501Program-error内部错误ORA-6511CURSOR-already-OPEN试图打开一个已存在的游标ORA

3、-6530Access-INTO-null试图为null对象的属性赋值--异常处理--预定义异常declarev_empnoemp.empno%type:=&empno;v_salemp.sal%type;beginselectsalintov_salfromempwhereempno=v_empno;ifv_sal<=2000thenupdateempsetsal=sal+100whereempno=v_empno;dbms_output.put_line('编号为:'

4、

5、v_empno

6、

7、'已经更新!');elsedbms_output.put_line('编号为:

8、'

9、

10、v_empno

11、

12、'已超过规定值!');endif;exceptionwhenno_data_foundthendbms_output.put_line('数据库中没有记录');whentoo_many_rowsthendbms_output.put_line('运行错误!请使用游标!');whenothersthendbms_output.put_line(SQLCODE

13、

14、'---'

15、

16、SQLERRM);end;l非预定义异常对于这类异常情况的处理,首先必须对非定义的oracle错误进行定义,将一个异常对象与一个oracle错误关联起来。步骤如下:1.<异常情

17、况名>Exception;---声明2.pragmaexception_init(<异常情况>,<错误代码>);--将其定义好的异常情况,与标准的ORACLE错误联系起来,使用EXCEPTION_INIT语句3.在PL/SQL块的exception对异常情况做出相应的处理。--非预定义异常declarev_deptnodept.deptno%type:=&deptno;deptno_remainingexception;--声明一个异常--和oracle系统关联,2292是违反一致性约束的错误代码pragmaexception_init(deptno_remaining

18、,-2292);begindeletefromdeptwheredeptno=v_deptno;dbms_output.put_line('删除成功!');exceptionwhendeptno_remainingthendbms_output.put_line('违反了完整性约束!');rollback;whenothersthendbms_output.put_line(SQLCODE

19、

20、'---'

21、

22、SQLERRM);end;l用户自定义异常用户定义的异常错误是通过显式使用RAISE语句来触发。当引发一个异常错误时,控制就转向到EXCEPTION块异常错误部分,执

23、行错误处理代码。步骤如下:1.<异常情况>EXCEPTION;--声明异常2.RAISE<异常情况>--触发异常3.在exception块对异常情况做出相应的处理。--用户自定义异常declarev_empnoemp.empno%type:=&empno;no_resultexception;--声明一个异常beginupdateempsetsal=sal-100whereempno=v_empno;dbms_output.put_line('数据更新成功!');--notfound是隐式游标ifsql%notfoundthenraise

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

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

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