Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
23 gösterim
Oracle db de, pl/sql dilini kullanarak büyük miktarda data silme işlemi yapmak istyorum. Nasıl bir cursor yazabilirim?
Veri Tabanı kategorisinde (1.6k puan) sordu

1 cevap

0 oy

DMBS job olarak yaratmak daha hızlı ve güvenlidir .

Normal SQL komut satırında çalıştırmaya kalkarsan connection kopması, IDE den kaynaklı veya çeşitli hatalardan dolayı sorun yaşabilirsin.

Örnek bir script şu şekilde olabilir

declare
  v_ctr pls_integer := 0;
begin
  loop
    delete from TABLE t
       where rownum < 1000;
   if sql%rowcount = 0 then 
       exit;
   end if;
    commit;
   end loop
  commit;
end;

Burda tablo (TABLE) üzerinden ilk 1000 kaydı sil diye komut çalıştırıyoruz. Şayet silinmiş kayıt yoksa (sql%rowcount = 0) çıkış yapıyoruz. Eğer kayıtlar silinmeye devam ederse bitene kadar dönüyoruz.

(1.6k puan) cevapladı

İlgili sorular

0 oy
1 cevap 17 gösterim
0 oy
1 cevap 26 gösterim
0 oy
2 cevap 62 gösterim
0 oy
1 cevap 19 gösterim
19 gösterim 22 Şubat 2017 Veri Tabanı kategorisinde tolga (1.6k puan) sordu
...