Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

PLS-00103:Menemukan simbol END saat mengharapkan + &=dll

Klausa terakhir Anda harus menggunakan ELSE bukannya 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;

PERBARUI

Memberi Anda saran tentang cara memecahkan masalah ini tidak mudah (karena sebagian besar masalah preferensi pribadi); hal yang biasanya saya coba adalah

  • persempit contoh (dalam kasus Anda, singkirkan semua klausa tambahan di CASE )
  • tulis ulang bagian kueri yang menyinggung dari awal
  • salin kueri serupa yang berfungsi dan ubah kueri itu secara bertahap agar menyerupai kueri yang menyinggung hingga saya menemukan kesalahan


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Eksekusi kueri Oracle Ad Hoc dengan Parameter Bind Erroring Out; ORA-00907:tanda kurung kanan hilang

  2. Melarikan diri dari ampersand di PL/SQL Developer

  3. Masalah NLS_CHARACTERSET WE8ISO8859P1 dan UTF8 di Oracle

  4. Permintaan sql Oracle untuk mengelompokkan catatan berurutan berdasarkan tanggal

  5. Perbedaan antara CLOB dan BLOB dari Perspektif DB2 dan Oracle?