Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Database API:Bagaimana menangani kondisi multi di mana dengan Python

Anda perlu menggunakan parameter SQL untuk setiap nilai.

Untuk in pernyataan, itu berarti Anda perlu membuat parameter:

sql = 'select * from tbl where params1=:params1 and params2=:params2 and params3 in ({})'.format(
    ', '.join(['params3_' + str(i) for i in range(len(params3_value))])

di mana saya berasumsi bahwa params3_value adalah daftar nilai untuk menguji params3 melawan. Jika params3_value adalah 3 elemen (seperti ['v1', 'v2', 'v3'] ) maka SQL yang dihasilkan akan terlihat seperti:

select * from tbl where params1=:params1 and params2=:params2 and params3 in (:params3_0, :params3_1, :params3_2)

Kemudian berikan parameter tersebut ke cursor.execute() hubungi:

params = {'params1': params1_value, 'params2': params2_value}
for i, val in enumerate(params3_value):
    params['params3_' + str(i)] = value
cursor.execute(sql, {params})

Saya menggunakan :name bernama gaya parameter SQL di sini karena itulah cx_Oracle menggunakan. Lihat dokumentasi konektor database Anda untuk mengetahui gaya parameter yang didukung secara tepat.

:named bernama gaya parameter SQL mengharuskan Anda memasukkan parameter sebagai kamus, sehingga kode di atas menghasilkan kunci yang tepat untuk params3_value item.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. perulangan melalui array untuk kondisi where pl/sql

  2. Cara mendapatkan daftar Fungsi Oracle asli Seperti (NVL, ABS dll)

  3. SQL:sisipkan baris dengan nilai yang diringkas

  4. Bagaimana cara memanggil prosedur pengembalian Oracle CURSOR di java

  5. Fitur tersembunyi di Oracle