---- 第六章 HANDLE EXCEPTION ----
1.异常
分类:1) ORACLE预定义,ORACLE公司对常见的异常都做了预定义
2) 自定义异常
2.用户自定义异常
DECLARE
...
e_TooManyStudents EXCEPTION; /* 申明异常 EXCEPTION关键字 */
...
BEGIN
...
RAISE e_TooManyStudents; /* 触发异常,抛出异常 RAISE关键字 */
...
EXCEPTION
WHEN e_TooManyStudents THEN /* 捕捉和处理异常 */
... (异常处理代码块)
WHEN OTHERS THEN /* 捕捉和处理所有其他异常 */
... (异常处理代码块)
END;
3.ORACLE 的预定义异常
1) ORA-0001
DUP_VAL_ON_INDEX
2) ORA-0051
TIMEOUT_ON_RESOURCE
3) ORA-1001
INVALID_CURSOR 无效的游标的异常 ( NO_DATA_FOUND异常 )
4) ORA-6533
SUBSCRIPT_BEYOND_COUNT
5) ......
4.处理所有的异常
EXCEPTION
... ;
WHEN OTHERS THEN
v_errorCode := SQLCODE;
v_errorText := SUBSTR(SQLERRM,1,200);
INSERT INTO log_file(code,message,info) VALUES(v_errorCode,v_errorText,'ORACLE Error');
END