sql >> Databáze >  >> RDS >> Oracle

jak předat proměnnou v klauzuli WHERE IN Oracle SQL?

Jak zmínil Pavanred, nejjednodušší způsob - i když ne nutně nejlepší - je interpolovat hodnoty sami. Neříkáte, jaký je váš volací jazyk, ale něco jako:

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

To však znamená, že je velmi důležité, abyste předem zkontrolovali všechny hodnoty v $1, abyste se ujistili, že jde buď o čísla, nebo správně uvozené řetězce, nebo cokoli jiného, ​​co musíte předat, ale nemohou to být nezpracované hodnoty dodané uživatele, aby se zabránilo vložení SQL.

Druhou možností je udělat z toho dvoufázový proces. Nejprve vložte hodnoty z $1 do dočasné tabulky a poté tyto hodnoty vyberte jako poddotaz:

WHERE myColumn in (SELECT temp_value FROM temp_table)


  1. Překlenutí mezery v Azure:Spravované instance

  2. WAMP Nelze přistupovat k místní síti 403 Zakázáno

  3. Mysql Complex Where klauzule

  4. Odečtěte týdny od data v PostgreSQL