Bonjour,
J'apprends à créer des procédures stockées sous postgres et je bloque dès le début.
Ma procédure a pour but de valider la bonne connexion d'un utilisateur en fonction du login saisi et de son mot de passe. Voici son code :
et voici mon appel en java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 DECLARE ident integer; BEGIN SELECT INTO ident id FROM admin.users WHERE login = login AND password = password; IF ident IS NULL THEN -- l'utilisateur n'existe pas RETURN -1; ELSE UPDATE admin.users SET connection = connection+1 WHERE id = ident; RETURN ident; END IF; END;
et voici l'exception levée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 CallableStatement stUser = null; stUser = conn.prepareCall("{? = call admin.isvalidlogon(?, ?)}"); stUser.registerOutParameter(1, Types.INTEGER); stUser.setString(2, "tata"); stUser.setString(3, "toto"); stUser.executeUpdate(); if (stUser.getInt(1) > -1) { System.out.println("Connexion autorisée"); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 org.postgresql.util.PSQLException: Un CallableStatement a été exécuté mais n''a rien retourné. at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:340) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:282) at fr.ggl.utils.database.sp.ProcedureStockee.logon(ProcedureStockee.java:48) at fr.ggl.utils.database.sp.ProcedureStockee.main(ProcedureStockee.java:19)
Partager