Vaše závěrečná klauzule by měla používat ELSE
místo 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;
AKTUALIZACE
Dát vám radu, jak tento problém vyřešit, není snadné (protože je to z velké části otázka osobních preferencí); věci, které obvykle zkouším, jsou
- zúžit příklad (ve vašem případě se zbavte všech dalších klauzulí v
CASE
) - znovu přepište problematickou část dotazu
- zkopírujte podobný dotaz, který funguje, a postupně jej změňte, aby se podobal problematickému dotazu, dokud nenarazím na chybu