日期:2014-05-16 浏览次数:20378 次
?
存储过程中异常的使用_示例
?
CREATE OR REPLACE PROCEDURE UPDATE_SAL(E_NAME IN VARCHAR2, E_SAL IN NUMBER) IS /** 声明异常 */ NOT_FOUND EXCEPTION; BEGIN /** 更改指定ename对应的工资 */ UPDATE EMP E SET E.SAL = E_SAL WHERE LOWER(E.ENAME) = LOWER(E_NAME); IF SQL%NOTFOUND THEN /** 如果E_NAME不存在,数据回滚,并抛出异常 */ ROLLBACK; RAISE NOT_FOUND; ELSE /** 如果E_NAME存在,事务提交 */ COMMIT; DBMS_OUTPUT.PUT_LINE('update sal success'); END IF; EXCEPTION WHEN NOT_FOUND THEN /** E_NAME不存在抛出的异常 */ DBMS_OUTPUT.PUT_LINE('there is not name ' || E_NAME || ' exits'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('others exception'); END; /?
存储过程的调用:
?
1. exec update_sal('scott1',3333); 打印的信息 : there is not name scott1 exits 2. exec update_sal('scott',3333); 打印的信息 : update sal success? ?
?
?