Oracle
 sql >> база данни >  >> RDS >> Oracle

как да предам променлива в WHERE IN клауза на oracle sql?

Както намекна Pavanred, най-лесният начин - макар и не непременно най-добрият - е сами да интерполирате стойностите. Не казвате какъв е езикът на обаждането ви, а нещо като:

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

Това обаче означава, че е много важно да сте проверили предварително всички стойности в $1, за да се уверите, че те са или числа, или правилно екранирани низове, или каквото и да е друго, което трябва да предадете, но не могат да бъдат необработени стойности, предоставени от потребител, за да избегнете SQL инжекция.

Другият вариант е процесът да се състои от две стъпки. Първо вмъкнете стойностите от $1 във временна таблица, след което изберете тези стойности като подзаявка:

WHERE myColumn in (SELECT temp_value FROM temp_table)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle подзаявката в ключова дума е бавна на 12c

  2. Модулът на Python cx_Oracle модулът не можа да бъде намерен

  3. Как да извлека данни от SAP ABAP система?

  4. не може да запише данни с голям размер с UTL_FILE.PUT_LINE

  5. Съхраняване на IP адрес в Oracle SQL таблица