您的位置:首页 > 博客中心 > 数据库 >

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

时间:2022-03-14 04:39

--预定义异常:系统已经声明的异常
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;

 

热门排行

今日推荐

热门手游