आपका अंतिम खंड ELSE
. का उपयोग करना चाहिए इसके बजाय 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;
अपडेट करें
इसका निवारण कैसे करें, इस बारे में आपको सलाह देना आसान नहीं है (क्योंकि यह काफी हद तक व्यक्तिगत पसंद का मामला है); जिन चीज़ों को मैं आमतौर पर आज़माता हूँ वे हैं
- उदाहरण को संक्षिप्त करें (आपके मामले में,
CASE
में सभी अतिरिक्त खंडों से छुटकारा पाएं ) - पूरी तरह से क्वेरी के आपत्तिजनक हिस्से को फिर से लिखें
- एक समान क्वेरी को कॉपी करें जो काम करती है और उस क्वेरी को धीरे-धीरे बदलकर आपत्तिजनक क्वेरी से मिलती-जुलती है जब तक कि मुझे त्रुटि का सामना न करना पड़े