Uw laatste clausule moet ELSE
. gebruiken in plaats van 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;
UPDATE
U advies geven over hoe u dit kunt oplossen, is niet eenvoudig (aangezien het grotendeels een kwestie van persoonlijke voorkeur is); dingen die ik meestal probeer zijn
- beperk het voorbeeld (verwijder in uw geval alle aanvullende clausules in de
CASE
) - herschrijf het aanstootgevende deel van de zoekopdracht helemaal opnieuw
- Kopieer een vergelijkbare zoekopdracht die werkt en verander die zoekopdracht geleidelijk zodat deze lijkt op de aanstootgevende zoekopdracht totdat ik de fout tegenkom