Oracle
 sql >> Database >  >> RDS >> Oracle

Problema di blocco PL/SQL:nessun errore di dati trovati

Quando selezioni INTO una variabile e non ci sono record restituiti, dovresti ricevere un errore NESSUN DATO TROVATO. Credo che il modo corretto per scrivere il codice sopra sia racchiudere l'istruzione SELECT con il proprio blocco BEGIN/EXCEPTION/END. Esempio:

...
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
      ...