Oracle
 sql >> Baza danych >  >> RDS >> Oracle

jak przekazać zmienną w klauzuli WHERE IN oracle sql?

Jak wspomniał Pavanred, najłatwiejszym sposobem – choć niekoniecznie najlepszym – jest samodzielne interpolowanie wartości. Nie mówisz, w jakim języku dzwonisz, ale coś w stylu:

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

Oznacza to jednak, że bardzo ważne jest wstępne sprawdzenie wszystkich wartości w $1, aby upewnić się, że są to albo liczby, albo łańcuchy ze znakami specjalnymi, lub cokolwiek innego, co musisz przekazać, ale nie mogą być surowymi wartościami dostarczonymi przez użytkownika, aby uniknąć wstrzyknięcia SQL.

Inną opcją jest uczynienie tego procesem dwuetapowym. Najpierw wstaw wartości z $1 do tabeli tymczasowej, a następnie wybierz te wartości jako podzapytanie:

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. Parametry JDBC CallableStatement i Oracle SYS_REFCURSOR IN?

  2. Funkcja LTRIM() w Oracle

  3. jak ustawić serveroutput na używanie połączenia jdbc w Jmeter?

  4. Korzystanie ze złożonej instrukcji IF w Oracle SQL

  5. Oracle — Zmodyfikuj istniejącą tabelę, aby automatycznie zwiększać kolumnę