异常
(1)
BEGIN
....
EXCEPTION
WHEN case_not_found THEN --值未找到
.....
END;
(2)
BEGIN
....
EXCEPTION
WHEN cursor_already_open THEN --游标已打开
.....
END;
(3)
BEGIN
....
EXCEPTION
WHEN dup_val_on_index THEN --触发不可重复的列
.....
END;
(4)
BEGIN
....
EXCEPTION
WHEN invaild_cursor THEN --打开未初始化的游标
.....
END;
(5)
BEGIN
....
EXCEPTION
WHEN too_many_rows THEN --返回数据不符
.....
END;
(6)
BEGIN
....
EXCEPTION
WHEN value_error THEN --数据长度过长
.....
END;
(7) --自定义例外 根据编号更新工资时,如果编号不存在,触发例外
CREATE OR REPLACE PROCEDURE EX_TEST(JLNO VARCHAR2) IS
MYEX EXCEPTION;
BEGIN
UPDATE EMP SET SAL = SAL + 1000 WHERE EMPNO = JLNO;
IF SQL%NOTFOUND THEN
RAISE MYEX;
END IF;
EXCEPTION
WHEN MYEX THEN
DBMS_OUTPUT.PUT_LINE('未更新任何数据');
END;
(1)
BEGIN
....
EXCEPTION
WHEN case_not_found THEN --值未找到
.....
END;
(2)
BEGIN
....
EXCEPTION
WHEN cursor_already_open THEN --游标已打开
.....
END;
(3)
BEGIN
....
EXCEPTION
WHEN dup_val_on_index THEN --触发不可重复的列
.....
END;
(4)
BEGIN
....
EXCEPTION
WHEN invaild_cursor THEN --打开未初始化的游标
.....
END;
(5)
BEGIN
....
EXCEPTION
WHEN too_many_rows THEN --返回数据不符
.....
END;
(6)
BEGIN
....
EXCEPTION
WHEN value_error THEN --数据长度过长
.....
END;
(7) --自定义例外 根据编号更新工资时,如果编号不存在,触发例外
CREATE OR REPLACE PROCEDURE EX_TEST(JLNO VARCHAR2) IS
MYEX EXCEPTION;
BEGIN
UPDATE EMP SET SAL = SAL + 1000 WHERE EMPNO = JLNO;
IF SQL%NOTFOUND THEN
RAISE MYEX;
END IF;
EXCEPTION
WHEN MYEX THEN
DBMS_OUTPUT.PUT_LINE('未更新任何数据');
END;