Bonjour,

Je travaille sur une application Java/J2EE utilisant Spring et hibernate avec une base Oracle 10g.

J'essaye de récupérer des données via une procédure PL/SQL et un DAO java utilisant la classe StoredProcedure de Spring (org.springframework.jdbc.object.StoredProcedure).

Mon problème est que ma procédure retourne une variable de type TABLE OF VARCHAR2 (un type SQL a été crée : TABOFVARCHAR) et je ne parviens pas à la récupérer depuis mon code java.

J'ai déjà réussi avec le meme code et une variable similaire mais de type TABOFNUMBER (TABLE OF NUMBER), d'où mon incomprehension.

Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
private class CallPckRecapPaiements extends StoredProcedure {
        // Nom de la procédure PLSQL à appeler
        private static final String PROC_NAME = "PCK_RECAP.getRecapPaiementData";
 
        // initialisation de la procédure et de ses paramètres.
        public CallPckRecapPaiements(DataSource datasource) throws SQLException {
            super(datasource, PROC_NAME);
            // Déclaration du type du paramètre de retour
            declareParameter(new SqlOutParameter("dataRecap", Types.ARRAY, "TABOFVARCHAR"));
            compile();
        }
 
        // Méthode de lancement de la procédure stockée.
        // Récupération des paramètres de la procédure.
        @SuppressWarnings("unchecked")
        public List<String> executeAndGetParameters() throws SQLException {
            List<String> conteneurs = new ArrayList<String>();
            Map outParams = execute(new HashMap());    
            final ARRAY result = (ARRAY) outParams.get("dataRecap");
            if (result != null) {
                for(Object obj : (Object[])result.getArray()) {
                    String[] donneesRecap = obj.toString().split(",");              
                }
            }
            return donneesRecap;
        }
    }
L'erreur qu'il me retourne à l'execution est la suivante :

Le modèle de nom n'est pas valide: TABOFVARCHAR;

Merci de votre aide...