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 :
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
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;
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);
Partager