Firebird de In limitinden kaynaklanan sorun

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Firebird de In limitinden kaynaklanan sorun

Mesaj gönderen Ali Erdoğan »

Merhaba,
Firebird veri tabanında

Kod: Tümünü seç

delete from tablo where id not in (............)
şeklinde bir sql çalıştırıyorum.Normalde çalışıyor ancak In den sonraki katar 1500 elemandan daha fazla ise -ki çoğu zaman fazla- hata veriyor.

İnternette bir araştırma yaptım ve firebird ün bu konuda bir kısıtlaması bulunduğunu gördüm:
Maximum number of elements in an IN list is 1499.
select name from phones where extension
in (0000, 0001, 0002 ... 1499);

http://www.ibphoenix.com/main.nfs?a=ibp ... tem+Limits'
Bu konuda ne yapabilirim.Sorguyu bu şekilde oluşturmam gerekiyor....
highmemo

Mesaj gönderen highmemo »

Bence sorgu durumun buraya kadar geldiyse yapını algoritmanı değiştir derim.


Ama yok algoritme, yöntem değiştirmem, değiştiremem dersen
o zaman:
Denemedim ama şöyle kullan;

In katarını bir kaç parçaya böl/sınırlandır ve;

Kod: Tümünü seç

Select * From Tbl_X 
Where ID 
           Not In (,,,,)
           and 
           Not In (,,,,,)
           and 
           Not In (,,,,,)

gibi kullan derim. :wink:
Cevapla