Utilisation de StoredProcedure
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:
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...