PL/SQL异常处理

PL/SQL异常处理

PL/SQL块分为3个部分:
声明部分,可执行部分,异常处理部分。
plsql的异常处理和Java的异常处理类似

1.PL/SQL异常

在程序运行出现错误时叫做异常。
发生异常后,语句将停止执行,控制权转移到PL/SQL块的异常处理部分。

2种异常类型

1.预定义异常
PL/SQL代码违反Oracle规则或超出系统限制,隐式触发。
2.用户自定义异常
用户在PL/SQL块的声明部分定义的异常,RAISE显式触发。

declare
  emp_name emp.ename%type;
begin
  select ename into emp_name from emp where empno=1;
  dbms_output.put_line(emp_name);
exception
  -- 预定义异常
  when no_data_found then
    dbms_output.put_line('人员不存在');  
end;
/
-- 用户自定义异常

declare
  emp_hiredate emp.hiredate%type;
  excep1 exception;
begin
  select hiredate into emp_hiredate from emp where empno = 7369;
  if emp_hiredate > to_date('19770616', 'yyyymmdd') then
    raise excep1;
  else
    dbms_output.put_line('入职时间正常');
  end if;  
exception
  when excep1 then
    dbms_output.put_line('入职时间异常');
end;
/

2.RAISE_APPLICATION_ERROR

创建用户定义的错误信息
错误编号必须在-20000~-20999之间
错误信息长度可长达2048Bytes
RAISE_APPLICATION_ERROR(error_number, error_message);
查看效果,可将上述代码
dbms_output.put_line(‘入职时间异常’);
替换为
raise_application_error(-20001, ‘日期错误’);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值