Bonjour les amis,
J'ai la procédure stockée ci dessous dans INFORMIX que je dois exécuter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
Create procedure getRevMoy(client char(15), dated date, datef date) returning decimal(19,4);
...
return RevMoy;
end procedure;
J'ai donc implémenté cette méthode
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
 
public Double calculerRevMoy(String client, LocalDate dateDeb, LocalDate dateFin) throws SQLException{
	CallableStatement statement = null;
	String sql = "{? = call getRefMoy(?, ?, ?)}";
	statement = connection.prepareCall(sql);
	statement.registerOutParameter(1, java.sql.Types.DECIMAL);
	statement.setString(2, client);
	statement.setDate(3, java.sql.Date.valueOf(dateDeb));
	statement.setDate(4, java.sql.Date.valueOf(dateFin));
	statement.execute();
	Double value = statement.getDouble(1);
	try{
		if(statement !=null){
			statement.close();
		}
	}catch(Exception ex){}
	return value;
}
Mais à l'exécution j'ai cette erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
java.sql.SQLException: Function doesn't have an output parameter or the out parameter isn't returned.
Après plusieurs recherche, je me rends compte que les procedures stockées que j'ai rencontré retourne une valeur dans un OUT parameter, alors que celle que je dois traiter à un return.
Pourriez vous me donner des éléments de réponse afin que je puisse implémenter une méthode pour l'exécution de cette procédure stockée ?
Merci