Bonjour,
Je voudrais appelée une procédure stockée (sur une base Oracle) qui a un paramètre de sortie de type curseur.

Voici la signature de la procédure stockée :
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
 
PROCEDURE GestionNbPage(Requete VARCHAR2, NumPage NUMBER, Nbligne NUMBER, FluxResultat OUT CurTyp, Suivant OUT NUMBER, Erreur OUT VARCHAR2) IS
		  RequeteNbPage		VARCHAR2(32657);
		  RequeteNbSuivant	VARCHAR2(32657);
 
	 BEGIN
		   Erreur := '';
		   Ecriretrace ('GestionNbPage','','','Requete : ' || Requete,0,0);
		   RequeteNbPage := '......';
 
		  OPEN FluxResultat FOR RequeteNbPage;
 
		  RequeteNbSuivant := '....';
		  EXECUTE IMMEDIATE RequeteNbSuivant INTO Suivant;
 
	 EXCEPTION
	 	  WHEN OTHERS THEN
		        Erreur := SQLERRM;
 
	 END GestionNbPage;
Mon problème se pose sur l'appel de cette procédure, voici une partie de mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
CallableStatement call = connexion.prepareCall("{call GestionNbPage(?,?,?,?,?,?)}");
	call.setString(1,sql);
	call.setInt(2, numPage);
        call.setInt(3, nbLigne);
	//call.registerOutParameter(4, ???);
	call.registerOutParameter(5, Types.INTEGER);
	call.registerOutParameter(6, Types.VARCHAR);
	call.execute();
	//récupération de mon 4è paramètre ??
	suivant = call.getInt(5);
	erreur = call.getString(6);