Posts

Showing posts with the label bulk collect

Bulk collect ve no_data_found

Hataya çok açık olan bir konuya değinmek istiyorum.Bildiğimiz gibi klasik select into ile tablodan okuduğumuz veriyi lokal değişkenimize yazıyoruz. Select ile seçtğimiz sonuç kümesi boş gelirse no_data_found exception ı ile hatayı yakalayabiliyoruz. Bunun paralelinde bulk_collect ile tablodan okuduğumuz veriyi lokal array imize yazmak istediğimizde ki sonuç kümesinin boş olduğunu varsayalım bu durumda oracle no_data_found hatasını fırlatmıyor ve eğer bizimde iş sürecimizde bu hatayı handle etmeye ihtiyacımız varsa farklı bir yol kullanmamız gerekiyor.Bunu da bulk collect işlemlerinde oracle ın lokalimizde yüklemeyi yapacağımız arrayimizi otomatik olarak boşaltmasından yararlanarak yani array in count metodunun sıfıra eşitliğini kullanarak yapıyoruz. Örneklerle konuyu açıklamaya çalışayım. drop table bulktable; create table bulktable (col1 integer); insert into bulktable values(1); insert into bulktable values(2); commit; DECLARE l_id PLS_INTEGER; BEGIN SELECT ora_rowscn INTO l_id FROM ...