Klausa terakhir Anda harus menggunakan ELSE
bukannya 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;
PERBARUI
Memberi Anda saran tentang cara memecahkan masalah ini tidak mudah (karena sebagian besar masalah preferensi pribadi); hal yang biasanya saya coba adalah
- persempit contoh (dalam kasus Anda, singkirkan semua klausa tambahan di
CASE
) - tulis ulang bagian kueri yang menyinggung dari awal
- salin kueri serupa yang berfungsi dan ubah kueri itu secara bertahap agar menyerupai kueri yang menyinggung hingga saya menemukan kesalahan