我将String数组(plcListchar)传递给Stored Procedure,我想在IN()子句中使用此String数组.

我不能直接在IN()子句中使用plcListchar.

让我展示我如何在JAVA中打包plcListchar字符串数组.

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;

我想在IN子句中使用plcListchar.以下是我的存储过程.

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;

你能建议我如何使用,如果你想建议任何其他逻辑,这是伟大的.

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐