Din sista klausul ska använda ELSE
istället för WHEN
:
DECLARE
v_grade CHAR(1) := 'C';
appraisal VARCHAR(20);
BEGIN
appraisal :=
CASE v_grade
WHEN 'A' THEN 'Excellent'
WHEN 'B' THEN 'Very Good'
WHEN 'C' THEN 'Good'
ELSE 'No such grade'
END;
DBMS_OUTPUT.PUT_LINE('Grade: '||v_grade||', Appraisal '||appraisal);
END;
UPPDATERA
Att ge dig råd om hur du felsöker detta är inte lätt (eftersom det till stor del är en fråga om personliga preferenser); saker jag brukar prova är
- begränsa exemplet (i ditt fall, ta bort alla ytterligare satser i
CASE
) - skriv om den stötande delen av frågan från början
- kopiera en liknande fråga som fungerar och ändra frågan gradvis så att den liknar den stötande frågan tills jag stöter på felet