Tôi đang truyền mảng String (plcListchar) đến Thủ tục lưu sẵn, tôi muốn sử dụng mảng String này trong mệnh đề IN().Mảng trong mệnh đề mệnh đề IN() trong PLSQL
tôi không thể sử dụng plcListchar trực tiếp trong mệnh đề IN(). Hãy để tôi chỉ ra cách tôi đang sắp xếp mảng chuỗi plcListchar trong 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);
cho đóng thùng CHAR_ARRAY,
create or replace type CHAR_ARRAY as table of varchar2;
tôi muốn sử dụng plcListchar tại khoản IN. sau đây là thủ tục lưu trữ của tôi.
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 [email protected] 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;
Bạn có thể giới thiệu cho tôi cách sử dụng, nếu bạn muốn đề xuất bất kỳ logic nào khác, điều đó thật tuyệt.
tôi cố gắng này: 'VÀ p.plc_status TRÊN (SELECT x *.FROM TABLE (plcListchar) AS x); ' và Oracle tăng ' PLS-00642: loại bộ sưu tập cục bộ không được phép trong câu lệnh SQL ' Tôi cũng đang tìm giải pháp. – Rachcha