日期:2014-05-16 浏览次数:20427 次
?
存储过程中异常的使用_示例
?
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
?
?
?
?