यह मानते हुए कि आपका संग्रह SQL में परिभाषित है, न कि केवल PL/SQL में, आप TABLE
का उपयोग कर सकते हैं ऑपरेटर (आपके द्वारा पोस्ट की गई परिभाषा वाक्य रचनात्मक रूप से मान्य नहीं है-- आपको VARCHAR2
के लिए लंबाई निर्दिष्ट करने की आवश्यकता होगी )
AND p.plc_status IN (SELECT column_value
FROM TABLE( plcListchar ))
चूंकि मेरे पास आपकी टेबल नहीं है, इसलिए SCOTT
. का उपयोग करने वाला एक उदाहरण स्कीमा
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.