sql >> Database teknologi >  >> RDS >> Oracle

PLS-00103:Stødte på symbolet END ved forventning om + &=osv

Din sidste klausul skal bruge ELSE i stedet for 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;

OPDATERING

Det er ikke let at give dig råd om, hvordan du fejlfinder dette (da det i høj grad er et spørgsmål om personlig præference); ting, jeg plejer at prøve, er

  • indsnævre eksemplet (i dit tilfælde skal du slippe af med alle yderligere klausuler i CASE )
  • omskriv den stødende del af forespørgslen fra bunden
  • kopiér en lignende forespørgsel, der virker, og skift forespørgslen gradvist, så den ligner den stødende forespørgsel, indtil jeg støder på fejlen


  1. Hvordan kan jeg begrænse størrelsen af ​​midlertidige tabeller?

  2. SQLSTATE[HY000] [2003] Kan ikke oprette forbindelse til MySQL-serveren på '127.0.0.1' (61) fejl Laravel 4.1

  3. Type 'MySqlConnection' er ikke defineret

  4. Indsæt flere rækker fra R Dataframe i Oracle Database