Массив в предложении IN () oracle PLSQL

Я передаю массив строк (plcListchar) в хранимую процедуру, я хотел бы использовать этот массив строк в предложении IN ().

я не могу использовать plcListchar непосредственно в предложении IN (). Позвольте мне показать, как я создаю строковый массив plcListchar в JAVA.

 String array[] = {"o", "l"}; 
 ArrayDescriptor des = ArrayDescriptor.createDescriptor("CHAR_ARRAY", con);
 ARRAY array_to_pass = new ARRAY(des,con,array);            
 callStmtProductSearch.setArray(4, array_to_pass);

для создания CHAR_ARRAY,

create or replace type CHAR_ARRAY as table of varchar2;

я хочу использовать plcListchar в предложении IN. ниже моя хранимая процедура.

CREATE OR REPLACE PROCEDURE product_search(
            status IN varchar2, 
            plcList IN varchar2,
            i_culture_id IN number,
            plcListchar IN CHAR_ARRAY,
            status_name OUT  varchar2, 
            culture_code  OUT varchar2)
AS  
    CURSOR search_cursor IS
    SELECT p.status_name, p.culture_code
                FROM PRISM_ITEM_cultures@prism p
                WHERE p.publishable_flag=1 
                AND p.isroll =0 
                AND status = '-1'
                AND p.plc_status IN (   );
 BEGIN
           OPEN search_cursor;
           FETCH search_cursor INTO status_name, culture_code ;
           CLOSE search_cursor;
 END;

Не могли бы вы предложить мне, как использовать, если вы хотите предложить любую другую логику, это здорово.

Ответы на вопрос(1)

Ваш ответ на вопрос