sql >> Database >  >> RDS >> Oracle

PLS-00103:Kwam het symbool END tegen bij het verwachten van + &=etc

Uw laatste clausule moet ELSE . gebruiken in plaats van 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;

UPDATE

U advies geven over hoe u dit kunt oplossen, is niet eenvoudig (aangezien het grotendeels een kwestie van persoonlijke voorkeur is); dingen die ik meestal probeer zijn

  • beperk het voorbeeld (verwijder in uw geval alle aanvullende clausules in de CASE )
  • herschrijf het aanstootgevende deel van de zoekopdracht helemaal opnieuw
  • Kopieer een vergelijkbare zoekopdracht die werkt en verander die zoekopdracht geleidelijk zodat deze lijkt op de aanstootgevende zoekopdracht totdat ik de fout tegenkom


  1. het controleren van de gebruikersstatus (actief, inactief) op een webpagina

  2. Android haalt gegevens op uit de MySql-tabel

  3. MYSQL onderscheidt de invoer van twee kolommen, zelfs wanneer er wordt gewisseld

  4. MySQL:Kolom automatisch huidige tijd van invoegen