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

JIKA ADA kondisi tidak bekerja dengan PLSQL

IF EXISTS() secara semantik salah. EXISTS kondisi hanya dapat digunakan di dalam pernyataan SQL. Jadi Anda dapat menulis ulang blok pl/sql Anda sebagai berikut:

declare
  l_exst number(1);
begin
  select case 
           when exists(select ce.s_regno 
                         from courseoffering co
                         join co_enrolment ce
                           on ce.co_id = co.co_id
                        where ce.s_regno=403 
                          and ce.coe_completionstatus = 'C' 
                          and ce.c_id = 803
                          and rownum = 1
                        )
           then 1
           else 0
         end  into l_exst
  from dual;

  if l_exst = 1 
  then
    DBMS_OUTPUT.put_line('YES YOU CAN');
  else
    DBMS_OUTPUT.put_line('YOU CANNOT'); 
  end if;
end;

Atau Anda cukup menggunakan count fungsi menentukan jumlah baris yang dikembalikan oleh kueri, dan rownum=1 predikat - Anda hanya perlu tahu apakah ada catatan:

declare
  l_exst number;
begin
   select count(*) 
     into l_exst
     from courseoffering co
          join co_enrolment ce
            on ce.co_id = co.co_id
    where ce.s_regno=403 
      and ce.coe_completionstatus = 'C' 
      and ce.c_id = 803
      and rownum = 1;

  if l_exst = 0
  then
    DBMS_OUTPUT.put_line('YOU CANNOT');
  else
    DBMS_OUTPUT.put_line('YES YOU CAN');
  end if;
end;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Driver ODBC Oracle Anda Memuat Klien Oracle?

  2. Gabungkan/Gabungkan Beberapa File PDF menjadi Satu PDF di Oracle Menggunakan Paket PLPDF_TOOLKIT PL/SQL

  3. Pembulatan ke 2 tempat desimal dalam SQL

  4. Tampilan logis dari model data di R12.2

  5. tidak dapat memuat oci8 -> Kesalahan fatal:Panggilan ke fungsi yang tidak ditentukan oci_connect()