sql >> Database >  >> RDS >> Oracle

PL/SQL-blokprobleem:Geen gegevens gevonden fout

Wanneer u INTO een variabele selecteert en er zijn geen records geretourneerd, zou u de foutmelding NO DATA FOUND moeten krijgen. Ik geloof dat de juiste manier om de bovenstaande code te schrijven zou zijn om de SELECT-instructie in te pakken met zijn eigen BEGIN/EXCEPTION/END-blok. Voorbeeld:

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


  1. Gegroepeerde aaneenschakeling :Duplicaten bestellen en verwijderen

  2. Waarom kan NULL in SQL niet overeenkomen met NULL?

  3. Gegevenskwaliteit en vaag zoeken

  4. Hoe PLAFOND() werkt in MariaDB