sql >> Databasteknik >  >> RDS >> Oracle

hur skickar man en variabel i WHERE IN-satsen i oracle sql?

Som Pavanred antydde är det enklaste sättet - även om det inte nödvändigtvis det bästa - att interpolera värdena själv. Du säger inte vad ditt anropsspråk är, utan något i stil med:

sql = "SELECT something FROM whatever WHERE myColumn in (" + $1 + ")"

Detta betyder dock att det är mycket viktigt att du har förkontrollerat alla värden i $1 för att se till att de antingen är siffror eller korrekt escaped strängar, eller vad det nu är som du behöver godkänna men inte kan vara råvärden som tillhandahålls av en användare, för att undvika en SQL-injektion.

Det andra alternativet är att göra det till en tvåstegsprocess. Infoga först värdena från $1 i en tillfällig tabell och välj sedan dessa värden som en underfråga:

WHERE myColumn in (SELECT temp_value FROM temp_table)


  1. PHP - Skapa kryssruta genom att använda posterna från MySQL-datumbasen som värden

  2. Syntaxfel med OM FINNS UPPDATERING ANNARS INSERT

  3. måste returnera två uppsättningar data med två olika where-satser

  4. Hur installerar man MySQL-python på Amazon Web Services EC2-instans?