Tableau dans la clause IN () oracle PLSQL
Je suis de passage String array(plcListchar) à une Procédure Stockée, je voudrais utiliser ce tableau de chaînes en() DE la clause.
je ne peux pas utiliser plcListchar directement dans() de la clause.
Laissez-moi vous montrer comment je me suis mise en caisse plcListchar tableau de chaînes en 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);
pour l'emballage CHAR_ARRAY,
create or replace type CHAR_ARRAY as table of varchar2;
je veux utiliser plcListchar dans la clause. voici ma Procédure Stockée.
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;
Pourriez vous s'il vous plaît me suggérer comment l'utiliser, si vous voulez suggérer une autre logique, c'est super.
source d'informationauteur Ravichandra
Vous devez vous connecter pour publier un commentaire.
En supposant que votre collection est définie dans le langage SQL, et pas seulement en PL/SQL, vous pouvez utiliser le
TABLE
opérateur (la définition que vous avez posté n'est pas syntaxiquement valide-- vous auriez besoin de spécifier une longueur pour laVARCHAR2
)Depuis je n'ai pas de vos tables, un exemple d'utilisation de la
SCOTT
schéma