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

Mảng trong mệnh đề IN () oracle PLSQL

Giả sử rằng bộ sưu tập của bạn được xác định trong SQL, không chỉ trong PL / SQL, bạn có thể sử dụng TABLE toán tử (định nghĩa bạn đã đăng không hợp lệ về mặt cú pháp - bạn cần chỉ định độ dài cho VARCHAR2 )

AND p.plc_status IN (SELECT column_value
                       FROM TABLE( plcListchar ))

Vì tôi không có bảng của bạn, một ví dụ sử dụng SCOTT lược đồ

SQL> create type ename_tbl is table of varchar2(30);
  2  /

Type created.

SQL> ed
Wrote file afiedt.buf

  1  declare
  2    l_enames ename_tbl := ename_tbl( 'KING', 'SMITH' );
  3  begin
  4    for i in (select *
  5                from emp
  6               where ename in (select column_value
  7                                 from table( l_enames )))
  8    loop
  9      dbms_output.put_line( 'ENAME = ' || i.ename );
 10    end loop;
 11* end;
SQL> /
ENAME = KING
ENAME = SMITH

PL/SQL procedure successfully completed.



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

  2. Hàm TANH () trong Oracle

  3. Đang thoát các ký tự đại diện trong LIKE

  4. Tại sao chạy truy vấn này với EXECUTE NGAY LẬP TỨC khiến nó không thành công?

  5. Oracle RAC VIP và ARP Primer