Oracle
 sql >> база данни >  >> RDS >> Oracle

PLS-00103:Срещна се символът END, когато се очаква + &=и т.н

Вашата последна клауза трябва да използва 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 )
  • пренапишете обидната част от заявката от нулата
  • копирайте подобна заявка, която работи и променяйте тази заявка постепенно, за да прилича на обидната заявка, докато не срещна грешката


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо ORACLE не позволява последователни знаци за нов ред в командите?

  2. Ексклузивно заключване на таблица (четене) на Oracle 10g?

  3. C# Грешка ORA 00907:Липсваща дясна скоба

  4. Oracle sql обобщена таблица на заявки

  5. RODBC заявката не връща данни