sql >> Databáze >  >> RDS >> Oracle

PLS-00103:Setkal se se symbolem END při očekávání + &=atd

Vaše závěrečná klauzule by měla používat ELSE místo 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;

AKTUALIZACE

Dát vám radu, jak tento problém vyřešit, není snadné (protože je to z velké části otázka osobních preferencí); věci, které obvykle zkouším, jsou

  • zúžit příklad (ve vašem případě se zbavte všech dalších klauzulí v CASE )
  • znovu přepište problematickou část dotazu
  • zkopírujte podobný dotaz, který funguje, a postupně jej změňte, aby se podobal problematickému dotazu, dokud nenarazím na chybu


  1. Převod kódu MySQL na Access:GROUP_CONCAT a trojité JOIN

  2. Získání všech potomků rodiče pomocí dotazu MSSQL

  3. Chyba:R se nemůže připojit k MySQL

  4. Použití spouštěče v Oracle k protokolování změn do tabulky