Bonsoir,
J'ai voulu créer un programme de test dans lequel j'affiche le contenu de ma table en utilisant une procédure stockée, le problème est que je ne reçois qu'une seule ligne sur les 200 de ma table !
Voici mon code Java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 System.out.println("---Début test---"); CallableStatement call = con.prepareCall("{call p_maProcedureT1()}"); call.execute(); ResultSet resultat = call.getResultSet(); while(resultat.next()){ System.out.println("Colonne 1 : " + resultat.getInt(1) + " Colonne 2 : "+ resultat.getInt(2)); } resultat.close(); call.close(); System.out.println("---Fin test---");
Voici l'affichage console :
---Début test---
Colonne 1 : 176 Colonne 2 : 1
---Fin test---
J'ai aussi essayé avec :
Mais c'est le même résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ResultSet resultat = call.executeQuery();
Je me suis rendu compte qu'en ajoutant un ORDER BY id à ma procédure que je recevais la première ligne de la table, mais ça s'arrête là, je ne reçois qu'une seule ligne sur les 200.
Voici ma procédure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CREATE FUNCTION p_maproceduret1(out identifiant integer, out valeur integer) AS $BODY$ BEGIN SELECT id, vala INTO identifiant, valeur FROM t1 ORDER BY id; END; $BODY$ LANGUAGE plpgsql; -- PS: Ceci est une procédure, pas une fonction
Peut-on retourner plusieurs lignes d'une table à partir d'une procédure stockée ?
Est-ce que je me suis trompé dans la syntaxe ?
D'où pourrait venir mon problème ?
Pourriez-vous me montrer un exemple simple pour l'affichage de mes 2 colonnes avec une procédure ?
Je suis sous PostgreSQL et je me sers de variable en mode OUT/INOUT pour récupérer mes résultats.
J'ai bien suivi le tutoriel sur Callable Statement du site et malgré cela je bloque depuis plusieurs jours sur ce problème...
Je vous remercie pour votre aide.
EDIT : orthographe
Partager