在sqlplus中使用系统定义未命名的异常我们可以处理什么类型的错误?

时间:2012-06-28 15:14:11

标签: sql oracle exception

我一直在尝试访问以下代码

DECLARE
       N_DEPTNO DEPT.DEPTNO %TYPE :=&DEPT_NUM;
       V_DNAME DEPT.DNAME %TYPE;
       NOT_ENOUGH_VALUES EXCEPTION;
       PRAGMA
             EXCEPTION_INIT(NOT_ENOUGH_VALUES,-06502);
BEGIN
       SELECT DNAME,LOC INTO DNAME FROM DEPT
       WHERE DEPTNO = N_DEPTNO;

       DBMS_OUTPUT.PUT_LINE('Successfully Fetched !!');
EXCEPTION
       WHEN NOT_ENOUGH_VALUES THEN
       DBMS_OUTPUT.PUT_LINE('No Enough Values ... ');
END;

在EXCEPTION块中指定后仍显示错误消息。

我可以使用PRAGMA EXCEPTION_INIT处理这类错误吗? 即在select语句中没有提供足够的值......

如果不是System Defined Unnamed Exception可以处理哪种类型的错误 使用PRAGMA EXCEPTION_INIT

1 个答案:

答案 0 :(得分:3)

异常处理程序可以捕获运行时错误。他们无法捕获编译错误。编译器在编译代码时会发现它在语法上是无效的 - 在INTO子句中没有指定足够的值。因此,在执行代码之前会引发异常。