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

Deklarasi beberapa nilai dalam Variabel Oracle BIND

Variabel mengikat Oracle adalah hubungan satu-ke-satu, jadi Anda memerlukan satu yang ditentukan untuk setiap nilai yang ingin Anda sertakan dalam IN klausa:

SELECT JOB
  FROM EMP 
 WHERE JOB IN (:JOB1, :JOB2, :JOB3, ..., :JOB3000)

Anda juga perlu menyadari bahwa Oracle IN hanya mendukung maksimal 1.000 nilai, atau Anda akan mendapatkan:

Alternatif terbaik adalah membuat tabel (diturunkan, sementara, aktual, atau tampilan), dan bergabung dengannya untuk mendapatkan nilai yang Anda inginkan. yaitu:

SELECT a.job
  FROM EMP a
  JOIN (SELECT :JOB1 AS col FROM DUAL
        UNION ALL
        SELECT :JOB2 FROM DUAL
        UNION ALL
        SELECT :JOB3 FROM DUAL
        UNION ALL 
        ...
        UNION ALL 
        SELECT :JOB3000 FROM DUAL) b ON b.col = a.job


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pernyataan Oracle

  2. Bagaimana cara memanggil fungsi tersimpan fnd_concurrent.wait_for_request dengan benar melalui API modul cx_Oracle?

  3. Di Oracle AS alias tidak berfungsi

  4. Menggunakan PL/SQL bagaimana Anda memasukkan konten file ke gumpalan?

  5. C# 2010, ODP.net, panggil prosedur tersimpan melalui array