[debutant][procedure stockee][plpgsql][java] aucun retour !?
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 :
Code:
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 mon appel en java :
Code:
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");
} |
et voici l'exception levée :
Code:
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) |