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

Prosedur tersimpan SQL untuk memeriksa nilai ya/tidak dalam tabel dan menjalankan sql

Tidak ada if (cursor) konstruksi atau memang exists operator dalam sintaks PL/SQL. Anda perlu melakukan sesuatu seperti ini:

declare
    somevar number;
begin
    select count(*) into somevar
    from   table1
    where  value_desc = 'Indicator'
    and    value1 = 'Y'
    and    rownum = 1;

    if somevar > 0 then
        execute immediate sql_select_yes
    else 
        execute immediate sql_select_no
    end;
end;

dan rownum =1 kondisi untuk berjaga-jaga jika ada banyak baris, karena Anda tidak memerlukannya untuk menghitung semuanya untuk tes keberadaan. (Ini tidak akan mempengaruhi hasil jika harus menghitung satu juta baris, itu hanya membuang-buang waktu ketika Anda hanya peduli jika ada satu baris.) Anda juga dapat menggunakan sesuatu seperti ini untuk pemeriksaan keberadaan:

select count(*) into somevar from dual
where  exists
       ( select 1
         from   table1
         where  value_desc = 'Indicator'
         and    value1 = 'Y'
         and    rownum = 1 );


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kembalikan semua Pengguna, bahkan mereka yang tidak sesuai dengan kriteria saya

  2. Nilai Pengembalian Oracle.DataAccess mengeksekusi non-query (proc tersimpan)

  3. Oracle self join dimulai dengan nilai minimum (yearmonths) untuk setiap partisi

  4. mendapatkan kesalahan ORA-00907 saat membuat tabel di pengembang sql

  5. C# 2010, ODP.net, panggil prosedur tersimpan melalui array