I parametri sono segnaposti per valori singoli, ciò significa che una clausola IN, che accetta un elenco di valori delimitati da virgole, non può essere utilizzata con i parametri.
Pensateci in questo modo: ovunque io inserisca un valore, posso usare un parametro.
Così, in una clausola del genere: IN (: param)
posso legare la variabile a un valore, ma solo 1 valore, ad es: IN (4)
Ora, se si considera un "Espressione del valore di clausola IN", ottieni una stringa di valori: IN (1, 4, 6) -> si tratta di 3 valori con virgole tra di loro. Fa parte della stringa SQL, non parte di un valore, motivo per cui non può essere associato a un parametro.
Ovviamente, questo non è quello che vuoi, ma è l'unica cosa possibile con i parametri.
fonte
2010-03-16 16:29:48
per quanto ne so SQL per sé non consente parametri di clausole. Alcuni workaround funzionano, vedi altre risposte, ma sii consapevole dei rischi di SQL injection. –
Ho provato di recente a fare la stessa cosa con MS SQL Server e anche questo non ha funzionato. –