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

Mengirim array nilai ke prosedur Oracle untuk digunakan dalam klausa WHERE IN

Salah satu caranya adalah dengan menggunakan VARRAY untuk PARAM_THAT_WILL_BE _USED_INSIDE_WHERE_IN parameter dan menggunakannya seperti yang dijelaskan di sini
Saya tidak yakin, bagaimana memanggilnya dari c#.

Cara lain adalah dengan menggunakan varchar2 dengan csv seperti yang Anda nyatakan dalam pertanyaan Anda tetapi tanpa sql dinamis, seperti ini:

CREATE PROCEDURE MY_TEST_PROC(
  CUR OUT SYS_REFCURSOR,
  PARAM_THAT_WILL_BE varchar2)
AS
BEGIN
  OPEN CUR FOR 
    SELECT * 
      FROM MY_TABLE 
     WHERE COL1 IN (
        select regexp_substr(PARAM_THAT_WILL_BE, '[^,]+',1,level) p
          from dual t
       connect by level <= regexp_count(PARAM_THAT_WILL_BE, ',') + 1
)
END;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengurangi Tanggal di Oracle - Tipe Data Angka atau Interval?

  2. perbedaan kriteria pencarian antara Suka vs Berisi () di Oracle

  3. Mentor Oracle DBA

  4. ORA-04091:tabel [bla] bermutasi, pemicu/fungsi mungkin tidak melihatnya

  5. Gabung Kiri dan Kanan Menggunakan Tanda Plus (+) di Oracle