Oracle
 sql >> Base de données >  >> RDS >> Oracle

Problème de bloc PL/SQL :erreur Aucune donnée trouvée

Lorsque vous sélectionnez INTO une variable et qu'aucun enregistrement n'est renvoyé, vous devriez obtenir une erreur NO DATA FOUND. Je pense que la bonne façon d'écrire le code ci-dessus serait d'envelopper l'instruction SELECT avec son propre bloc BEGIN/EXCEPTION/END. Exemple :

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