När du väljer INTO en variabel och inga poster returneras bör du få felet NO DATA FOUND. Jag tror att det korrekta sättet att skriva ovanstående kod skulle vara att slå in SELECT-satsen med sitt eget BEGIN/EXCEPTION/END-block. Exempel:
...
v_final_grade NUMBER;
v_letter_grade CHAR(1);
BEGIN
BEGIN
SELECT final_grade
INTO v_final_grade
FROM enrollment
WHERE student_id = v_student_id
AND section_id = v_section_id;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_final_grade := NULL;
END;
CASE -- outer CASE
WHEN v_final_grade IS NULL THEN
...