一 概念
定义变量,类型是exception
使用raise抛出自定义例外
二 自定义例外代码结构
三 代码
--自定义例外:查询50号部门的员工姓名
set serveroutput on
declare
--定义光标,代表50号部门的员工姓名
cursor cemp isselect ename from emp where deptno =50;
pename emp.ename%type;
--自定义例外
no_emp_found exception;
begin
open cemp;
--直接取一个员工的姓名
fetch cemp into pename;
if cemp%notfound then
--抛出例外
raise no_emp_found;
endif;
--关闭光标
--抛出异常,这个地方是不是没有关闭呢?
--关闭了,oracle自动启动pmon进程,pmon进程会调用close cemp
close cemp;
exception
when no_emp_found then dbms_output.put_line('没有找到员工');
when others then dbms_output.put_line('其他例外');
end;
/
四 运行结果
没有找到员工