Oracle
 sql >> Baza danych >  >> RDS >> Oracle

PLS-00103:Napotkano symbol END podczas oczekiwania + &=itp

Twoja ostatnia klauzula powinna zawierać ELSE zamiast 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;

AKTUALIZUJ

Udzielanie porad, jak rozwiązać ten problem, nie jest łatwe (ponieważ jest to w dużej mierze kwestia osobistych preferencji); rzeczy, których zwykle próbuję, to

  • zawęź przykład (w twoim przypadku pozbądź się wszystkich dodatkowych klauzul w CASE )
  • przepisz obraźliwą część zapytania od zera
  • skopiuj podobne zapytanie, które działa i stopniowo je zmieniaj, aby przypominało obraźliwe zapytanie, aż napotkam błąd


  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 Database Security:Audyt bazy danych

  2. Prosimy o pomoc w zapobieganiu refaktoryzacji warstwy danych tego kodu i transakcji ODP.NET

  3. Jak najlepiej obliczyć dane agregacji na poziomie n na podstawie danych z poziomu (n-1) (Oracle)

  4. Pokaż wykorzystanie procesora Oracle dla sesji w procentach

  5. Jak zwrócić zestaw wyników z procedury składowanej w Oracle?