3.742 messaggi dal 28 gennaio 2003
Proveniente da checkbox, nel server ho una stringa di questo tipo:

k1_v1,k2_v2,...,kn_vn

k e v sono le due chiavi primarie di una tabella

io vorrei cancellare tutti i record della tabella secondo la lista delle chiavi passate

delete from tabella where k=k1 and v=v1 or k=kn and v=vn

volevo sapere se si possa fare con la clausola in

where (k, v) in ( (k1,v1), (kn,vn) )

Ecco, vorrei passare uno o due o un vettori di chiavi, perchè l'istruzione stringa ha un limite di 1000 elementi, che io supero

non è che qualcuno esperto di oracle mi possa dare una mano?

ciao

Pietro
137 messaggi dal 22 gennaio 2017
Contributi
Ciao,
Il problema che presenti è classico di tutti i db relazionali.
Non ci sono molte alternative "belle".
Ti posso suggerire:
Salvi in una tabella temporanea le chiavi e in seguito fai una delete mettendo in join la tabella con quella temporanea.

Oppure, puoi utilizzare una stored procedere in cui passi una stringa contenente tutte le chiavi. Nella store interpreti la stringa e cancelli i vari record.
3.742 messaggi dal 28 gennaio 2003
Ciao. Ti ringrazio.

Pietro

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.