0

私は以下のコードにアクセスしようとしています

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

4

1 に答える 1

3

例外ハンドラーは実行時エラーをキャッチできます。コンパイルエラーをキャッチできません。INTOコンパイラは、コードをコンパイルしているときに、構文的に無効であると判断します。句に十分な値が指定されていません。したがって、コードが実行される前に例外が発生します。

于 2012-06-28T15:17:32.783 に答える