PL/SQL语言编程中异常分类及其处理

--预定义异常:系统已经声明的异常
DECLARE
V_NAME EMP.ENAME%TYPE;
BEGIN
SELECT ENAME INTO V_NAME FROM EMP WHERE EMPNO = 1234;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE(‘未查到数据‘);
WHEN OTHERS THEN
dbms_output.put_line(‘其他异常‘);
END;

--非预定义异常:系统异常,系统没有对其进行声明
DECLARE
e_fkexception EXCEPTION;
PRAGMA Exception_Init(e_fkexception,-2291);
BEGIN
INSERT INTO emp VALUES(8888,‘tom‘,‘CLERK‘,7902,SYSDATE,1900,NULL,50);
EXCEPTION
WHEN e_fkexception THEN
dbms_output.put_line(‘外键异常!‘);
WHEN OTHERS THEN
dbms_output.put_line(‘其他异常‘);
END;


--用户自定义异常
DECLARE
e_salexception EXCEPTION;
v_sal emp.sal%TYPE;
v_empno emp.empno%TYPE := &no;
BEGIN
SELECT sal INTO v_sal FROM emp WHERE empno = v_empno;
IF v_sal < 1000 THEN
RAISE e_salexception;
END IF;
EXCEPTION
WHEN e_salexception THEN
dbms_output.put_line(‘工资不能低于1000!‘);
END;

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。