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 :
L'erreur qu'il me retourne à l'execution est la suivante :
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; } }
Le modèle de nom n'est pas valide: TABOFVARCHAR;
Merci de votre aide...
Partager