String配列(plcListchar)をStored Procedureに渡していますが、このString配列をIN句に使用したいと考えています。IN()句の配列oracle PLSQL
私は、IN()節で直接plcListcharを使用することはできません。 JAVAでplcListchar文字列配列をどのように作成しているかを見せてください。 CHAR_ARRAY、
create or replace type CHAR_ARRAY as table of varchar2;
をクレートため
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);
私は、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 [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;
他のロジックを示唆したい場合は、使い方を教えてください。素晴らしいです。
を使用した例は、私はこれを試してみました:。 'とp.plc_status(IN XをSELECT *TABLEのx AS(plcListchar))FROM; ' とOracleが ' PLS-00642提起:SQLで許可されていない地元のコレクション型は、私も解決策を探しています をstatements'。 – Rachcha