首页 > 代码库 > Oracle的PL_SQL的异常处理
Oracle的PL_SQL的异常处理
--什么是异常 --异常是在PL/SQL运行过程中有可能出现的错误。 --执行异常的语句 exception when [异常] when --异常输出信息。 --Oracle的预定义异常 CASE_NOT_FOUND ora-06592 --case语句中,when子句没有匹配的条件,而且没有else语句,会触发该异常。 NO_DATA_FOUND ORA-01403 --select..into语句没有返回记录,触发该异常 TOO_MANY_ROWS ORA-01422 --select..into语句返回记录多于一条,触发该异常 DUP_VAL_ON_INDEX ORA-00001 --表中唯一索引所对应的列上出现重复值时,引发该异常 VALUE_ERROR ORA-06502 --赋值时,如果变量长度不够,引发该异常 ZERO_DIVIDE ORA-01476 --除数为零时引发的异常 STORAGE_ERROR ORA-06500 --内容溢出或破坏引发该异常 TIMEOUT_ON_RESOURCE ORA-00051 --等待资源超时引发该异常 CURSOR_ALREADY_OPEN ORA-06511 --打开一个已经打开的游标引发该异常 --非预定义异常 1、声明一个异常的名称。 2、把这个异常名称和异常的编号相关联。 --实例 declare v_t varchar2(5); v_tt varchar2(3); tt_8899_exp exception;--声明异常 pragma exception_init(tt_8899_exp,-8899);--exception_init(异常名称,异常代码) begin v_t:=‘1111‘; case v_t when ‘222‘ then dbms_output.put_line(‘555‘); end case; exception when CASE_NOT_FOUND then dbms_output.put_line(‘字符串超标‘); dbms_output.put_line(SQLERRM);--输出异常信息 dbms_output.put_line(SQLCODE);--输出异常的代码 rollback; end; --自定义异常 declare v_t number(10); tt_8899_exp exception;--声明异常 pragma exception_init(tt_8899_exp,-8899);--exception_init(异常名称,异常代码) begin v_t:=-1; if v_t<0 then raise tt_8899_exp;--启动自定义异常tt_8899_exp end if; exception when CASE_NOT_FOUND then dbms_output.put_line(SQLERRM);--输出异常信息 dbms_output.put_line(SQLCODE);--输出异常的代码 when tt_8899_exp then dbms_output.put_line(‘字符串超标‘); dbms_output.put_line(SQLERRM);--输出异常信息 dbms_output.put_line(SQLCODE);--输出异常的代码 rollback; end;
Oracle的PL_SQL的异常处理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。