Oracle认证第五章知识点辅导(2)
时间:2013-10-24
来源:Oracle认证考试网 浏览次数:35
【华夏培训网:中国教育培训第一门户】
代码演示:引发应用系统异常SQL DECLARE 2 sal emp.sal%TYPE; 3 myexp EXCEPTION; 4 BEGIN 5 SELECT sal INTO sal FROM emp WHE
代码演示:引发应用系统异常
SQL> DECLARE
2 sal emp.sal%TYPE;
3 myexp EXCEPTION;
4 BEGIN
5 SELECT sal INTO sal FROM emp WHERE ename='JAMES';
6 IF sal<5000 THEN
7 RAISE myexp;
8 END IF;
9 EXCEPTION
10 WHEN NO_DATA_FOUND THEN
11 dbms_output.put_line('NO RECORDSET FIND!');
12 WHEN MYEXP THEN
13 RAISE_APPLICATION_ERROR(-20001,'SAL IS TO LESS!'); ①
14 END;
15 /
ORA-20001: SAL IS TO LESS! ②
ORA-06512: 在 line 14
代码解析:
① 引发应用系统异常,指明异常码和异常信息。
② 在控制台上显示异常码和异常信息。
如果要处理未命名的内部异常,必须使用OTHERS异常处理器。也可以利用PRAGMA EXCEPTION_INIT把一个异常码与异常名绑定。
PRAGMA由编译器控制,PRAGMA在编译时处理,而不是在运行时处理。EXCEPTION_INIT告诉编译器将异常名与ORACLE错误码绑定起来,这样可以通过异常名引用任意的内部异常,并且可以通过异常名为异常编写适当的异常处理器。PRAGMA EXCEPTION_INIT的语法是:
PRAGMA EXCEPTION_INIT(异常名,异常码)
这里的异常码可以是用户自定义的异常码,也可以是Oracle系统的异常码。
Oracle认证