Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Problem z blokiem PL/SQL:błąd nie znaleziono danych

Kiedy wybierasz do zmiennej i nie ma zwróconych rekordów, powinieneś otrzymać błąd NO DATA FOUND. Uważam, że prawidłowym sposobem napisania powyższego kodu byłoby zawinięcie instrukcji SELECT z jej własnym blokiem BEGIN/EXCEPTION/END. Przykład:

...
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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przykładowe schematy na GitHub

  2. Co muszę zmienić podczas wysyłania zapytania?

  3. Czy konieczne jest wyrzucenie DbCommand po użyciu?

  4. TNS-12519 bez osiągnięcia maksymalnej liczby procesów

  5. Porównanie dostawców zgodnych z Entity Framework dla Oracle?