Din sidste klausul skal bruge ELSE
i stedet for 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;
OPDATERING
Det er ikke let at give dig råd om, hvordan du fejlfinder dette (da det i høj grad er et spørgsmål om personlig præference); ting, jeg plejer at prøve, er
- indsnævre eksemplet (i dit tilfælde skal du slippe af med alle yderligere klausuler i
CASE
) - omskriv den stødende del af forespørgslen fra bunden
- kopiér en lignende forespørgsel, der virker, og skift forespørgslen gradvist, så den ligner den stødende forespørgsel, indtil jeg støder på fejlen