PL/SQL-block-problem: "Keine Daten gefunden" - Fehler

SET SERVEROUTPUT ON
DECLARE
    v_student_id NUMBER := &sv_student_id;
    v_section_id NUMBER := 89;
    v_final_grade NUMBER;
    v_letter_grade CHAR(1);
BEGIN
    SELECT final_grade
    INTO v_final_grade
    FROM enrollment
    WHERE student_id = v_student_id
    AND section_id = v_section_id;

    CASE -- outer CASE
        WHEN v_final_grade IS NULL THEN
            DBMS_OUTPUT.PUT_LINE ('There is no final grade.');
        ELSE
            CASE -- inner CASE
                WHEN v_final_grade >= 90 THEN v_letter_grade := 'A';
                WHEN v_final_grade >= 80 THEN v_letter_grade := 'B';
                WHEN v_final_grade >= 70 THEN v_letter_grade := 'C';
                WHEN v_final_grade >= 60 THEN v_letter_grade := 'D';
                ELSE v_letter_grade := 'F';
            END CASE;

            -- control resumes here after inner CASE terminates
            DBMS_OUTPUT.PUT_LINE ('Letter grade is: '||v_letter_grade);
    END CASE;
    -- control resumes here after outer CASE terminates
END;

den obigen code habe ich aus dem Buch "Oracle PL/SQL by Example, 4. Auflage 2009" mein problem ist wenn ich ein student_id nicht in der Tabelle vorhanden es gibt mir die folgende Fehlermeldung

Fehlerbericht: ORA-01403: keine Daten gefunden 
ORA-06512: in Zeile 7 
01403. 00000 - "keine Daten gefunden" 
*Ursache: 
*Aktion: 

aber laut dem Buch sollte es ein Nullwert zurückgegeben, und Folgen Sie dann den Fall fließen.

InformationsquelleAutor Orapps | 2009-08-10
Schreibe einen Kommentar