Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm cách nào để bạn chỉ định mệnh đề IN trong một truy vấn động sử dụng một biến?

Giống như trong liên kết @Sathya, bạn có thể liên kết varray (tôi lấy ví dụ @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;
/

CẬP NHẬT: lệnh đầu tiên có thể được thay thế bằng:

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

sau đó gọi:

l_str_tab.extend(1);

bao giờ bạn thêm một giá trị



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cập nhật bản vá quan trọng của Oracle - tháng 10 năm 2020

  2. Làm thế nào để buộc pascal case với sự hỗ trợ Entity Framework của Oracle?

  3. cx_Oracle và Xử lý ngoại lệ - Các phương pháp hay?

  4. Hướng dẫn sql Oracle:Câu lệnh Sql cơ bản

  5. Thiết lập môi trường phát triển để học PL / SQL