>Aggirerò il problema così:
>memorizzo in un dizionario le coppie campi/valori che creano l'istanza di database in un dato momento. Così non dovrò cercare gli ID tramite un IN.

Non ho chiaro quello che devi fare, ma indubbiamente vi e' un limite nella lunghezza della espressione.

Pero' se cosi' e' , e se come ho capito te memorizzi gli ID in una tabella (il tuo dizionario),
li puoi invocare cosi':

where
    campo1 IN (select valore from dizionario)
;

Se il problema e' la lunghezza della stringa SQL che non puo superare una certa lunghezza,
questa ultima sintassi dovrebbe funzionare.

E forse potresti anche usare

where
   campo1 EXISTS (select valore from dizionario)

A.

Il 13/09/2014 19:26, Luca Mandolesi ha scritto:


Il giorno 13 settembre 2014 13:45, Andrea Peri <aperi2...@gmail.com <mailto:aperi2...@gmail.com>> ha scritto:

    Io non userei una serie smisurata di AND,
    anche perche' metti a dura prova l'ottimizzatore della query.

    Proverei a usare invece il costrutto IN

    where
     campo1 IN ('valore1','valore2','valore3',.....)


No, non funzia, lo vede sempre come un eccesso di patametri


    Anche su postgres.


Postgres digerisce anche i sassi. Non ha problemi


    prova e facci sapere se questo ammette piu valori di 999



Aggirerò il problema così:
memorizzo in un dizionario le coppie campi/valori che creano l'istanza di database in un dato momento. Così non dovrò cercare gli ID tramite un IN.

Nel caso avessi un'istanza di database che corrisponde a tutti i record faro solo una query id > 0.

Per eliminare per esempio più di 1000 record non farò altri che segmentare i delete in pacchetti da 500.





    --
    -----------------
    Andrea Peri
    . . . . . . . . .
    qwerty àèìòù
    -----------------



_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni 
dell'Associazione GFOSS.it.
666+40 iscritti al 5.6.2014

Rispondere a