-- 删除dept表中指定部门的信息
-- 分析:dept和emp表之间具有主外键的关系,当删除指定部门的信息时,应确保该部门下没有员工
-- 分析:dept和emp表之间具有主外键的关系,当删除指定部门的信息时,应确保该部门下没有员工
declare
-- 1.定义非预定义异常
e_fk exception;
-- 2.把Oracle错误与异常建立关联
-- -2292 违反外键约束的错误编号
pragma exception_init(e_fk,-2292);
begin
delete from dept where deptno = &deptno;
exception
when e_fk then
-- 3.捕捉并处理异常
dbms_output.put_line('此部门下有员工,无法删除!');
when others then
-- sqlcode 获得oracle错误编号,sqlerrm获取oracle错误信息
dbms_output.put_line(sqlcode||'###'||sqlerrm);
end;