Bonjour à tous !

Ca va faire bientôt deux journées que je tourne en rond sur ce pb et je commence naturellement à en avoir marre !
Je n'arrive pas à accéder aux éléments d'une liste passée en paramètre à une procédure stockée !!!

J'aimerais tout bêtement passer un tableau de String à une procédure stockée dans Oracle. Le tableau n'aura pas tout le temps la même longueur, donc j'ai créé un type nested table sur toute la base :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CREATE OR REPLACE TYPE STRINGARRAY2 IS TABLE OF VARCHAR(64);
Jusque là OK.

Voici la partie PL/SQL :
- le header du package en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
PROCEDURE maProc	(colEquip IN STRINGARRAY2);
- le body :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
PROCEDURE maProc	(colEquip IN STRINGARRAY2) IS
BEGIN
Pck_Utilitaire.ado_Add_Erreur('ii',colEquip.COUNT||'-- '
||colEquip(colEquip.FIRST)||' --'||colEquip.FIRST||'--'
||colEquip.LAST,NULL,ERR_TRAITEMENT);
COMMIT;
END;
La procédure ado_Add_Erreur ne fait qu'écrire dans une table.

J'utilise Java et JDBC pour me connecter à Oracle. Voici la partie Java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 /*j'initialise tout bien avant avec les classes Oracle et pas les génériques*/
String[] equip=new String[4];
equip[0]="coucou";
equip[1]="coicoi";
equip[2]="coacoa";
equip[3]="coecoe";
oracle.sql.ArrayDescriptor descriptor = oracle.sql.ArrayDescriptor.createDescriptor("STRINGARRAY2", con);
oracle.sql.ARRAY array = new ARRAY (descriptor, con, equip);
 
String sql="{call MON_SCHEMA.MON_PACKAGE.maProc(?)}";	
OracleCallableStatement  req=(OracleCallableStatement) con.prepareCall(sql);
req.setArray(1, array);
req.execute();
La procédure s'exécute correctement, mais voila ce que je trouve dans la table : En bref je n'arrive pas à accéder aux éléments de ma liste... J'ai essayé de boucler sur la liste, je n'arrive à accéder à aucun élément.
J'ai aussi testé en 8i et le comportement est le même...

J'ai loupé une étape dans l'initialisation ?
Vous voyez un problème quelque part ?

J'espère que j'ai été clair !
Merci d'avance !