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

Bagaimana Anda menentukan klausa IN dalam kueri dinamis menggunakan variabel?

Seperti di tautan @Sathya, Anda dapat mengikat varray (saya mengambil contoh @Codo):

CREATE OR REPLACE TYPE str_tab_type IS VARRAY(10) OF VARCHAR2(200);
/
DECLARE
  l_str_tab str_tab_type;
  l_count NUMBER;
  v_sql varchar2(3000);
BEGIN
  l_str_tab := str_tab_type();
  l_str_tab.extend(2);
  l_str_tab(1) := 'TABLE';
  l_str_tab(2) := 'INDEX';

  v_sql := 'SELECT COUNT(*) FROM all_objects WHERE object_type IN (SELECT COLUMN_VALUE FROM TABLE(:v_list))';

  execute immediate v_sql into l_count using l_str_tab;

  dbms_output.put_line(l_count);
END;
/

PERBARUI: perintah pertama dapat diganti dengan:

CREATE OR REPLACE TYPE str_tab_type IS TABLE OF VARCHAR2(200);
    /

lalu hubungi:

l_str_tab.extend(1);

kapan pun Anda menambahkan nilai



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rekomendasi untuk mendukung Oracle dan SQL Server di aplikasi ASP.NET yang sama dengan NHibernate

  2. Tempat Pemusnahan Kursor

  3. Buku Putih Pengoptimal 12c lainnya

  4. Persyaratan Pemulihan Sebelum Pencadangan

  5. Mengapa di SQL NULL tidak bisa cocok dengan NULL?